QDockWidget类继承与QWidget类,用于停靠窗口的管理。在主窗口中,先设置中心控件,然后实例化QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过
setAllowedAreas( )设置窗体可停靠的区域。具体如下:
void setFeatures(DockWidgetFeatures features )
QDockWidget::DockWidgetClosable | 停靠窗可关闭 |
QDockWidget::DockWidgetMovable | 停靠窗可移动 |
QDockWidget::DockWidgetFloatable | 停靠窗可浮动 |
QDockWidget::DockWidgetVerticalTitleBar | 标题栏垂直放置 |
QDockWidget::AllDockWidgetFeatures | 可关闭、可移动、可浮动 |
QDockWidget::NoDockWidgetFeatures | 不可关闭、不可移动、不可浮动 |
void setAllowedAreas ( Qt::DockWidgetAreas areas )
Qt::LeftDockWidgetArea | 可在中央控件的左侧停靠 |
Qt::RightDockWidgetArea | 可在中央控件的右侧停靠 |
Qt::TopDockWidgetArea | 可在中央控件的顶部停靠 |
Qt::BottomDockWidgetArea | 可在中央控件的底部停靠 |
Qt::AllDockWidgetAreas | 可在中央控件的任意方向停靠 |
Qt::NoDockWidgetArea | 只可停靠在插入处 |
eg:
//停靠窗
QDockWidget *dockWidget = new QDockWidget("Dock Window",this);
dockWidget->setFeatures(QDockWidget::AllDockWidgetFeatures);
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas); //能够停放的位置
dockWidget->setMaximumSize(300,50);
//dockWidget->setWindowFlags(Qt::FramelessWindowHint);
//dockWidget->setAttribute(Qt::WA_TranslucentBackground);
label_T = new QLabel(this);
label_T->resize(300,30);
label_T->setStyleSheet("background-color:green");
label_T->setText(QString("pppp的火辣辣的哈克"));
dockWidget->setWidget(label_T);
addDockWidget(Qt::RightDockWidgetArea,dockWidget); //初始位置
效果:
留存...