QDockWidget是Qt中的一个容器类,用于在主窗口上创建可停靠的子窗口。
设置停靠窗口的一般流程如下:
(1)创建一个QDockWidget 对象的停靠窗体。
(2)设置此停靠窗体的属性,通常调用setFeatures()及setAllowedAreas()两种方法。
(3)新建一个要插入停靠窗体的控件,常用的有QListWidget和QTextEdit。
(4)将控件插入停靠窗体,调用QDockWidget的setWidget()方法。
(5)使用addDockWidget()方法在MainWindow中加入此停靠窗体。
通过实例演示QDockWidget 类的使用:
在源文件“dockwindows.cpp”具体代码如下:
运行效果:
窗口1只可在主窗口的左边和右边停靠;
窗口2只可在浮动和右部停靠两种状态间切换,并且不可移动;
窗口3可实现停靠窗口的各种状态。
setFeatures()方法设置停靠窗体的特性,原型如下:
void setFeatures ( DockWidgetFeatures features)
参数QDockWidget::DockWidgetFeatures指定停靠窗体的特性,包括以下几种参数:
(1)QDockWidget::DockWidgetClosable: 停靠窗体可关闭。
(2)QDockWidget::DockWidgetMovable: 停靠窗体可移动。
(3)QDockWidget::DockWidgetFloatable: 停靠窗体可浮动
(4)QDockWidget::AllDockWidgetFeatures: 此参数表示拥有停靠窗体的所有特性
(5)QDockWidget::NoDockWidgetFeatures: 不可移动、不可关闭、不可浮动。
此参数可采用或(|)的方式对停靠窗体进行特性的设定。
setAllowedAreas()方法设置停靠窗体可停靠的区域,原型如下:
void setAllowedAreas (Qt::DockWidgetAreas areas)
参数Qt::DockWidgetAreas 指定了停靠窗体可停靠的区域,包括以下几种参数:
Qt::LeftDockWidgetArea: 可在主窗口的左侧停靠。
Qt::RightDockWidgetArea: 可在主窗口的右侧停靠
Qt::TopDockWidgetArea: 可在主窗口的顶端停靠
Qt::BottomDockWidgetArea: 可在主窗口的底部停靠。
Qt::AllDockWidgetArea: 可在主窗口任意(以上四个)部位停靠。
Qt::NoDockWidgetArea: 只可停靠在插入处。
各区域设定也可采用或(|)的方式进行。