- 通过QDockWidget类来实现
- 关键接口
- void setFeatures(DockWidgetFeatures features)
- DockWidgetFeatures 是一个 QFlags<DockWidgetFeature> 类型,用起来有点类似linux里经常用的按位与或的flag(但是用起来更安全,0x00000002可以和任何其他数例如0x01000000组合,甚至可能没有这个flag,但是用用QFlags你只能用枚举里的几个值去组合)。
- 其中DockWidgetFeature 是一个枚举量
- enum DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, DockWidgetVerticalTitleBar, AllDockWidgetFeatures, NoDockWidgetFeatures }
- setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable)
- void setAllowedAreas(Qt::DockWidgetAreas areas)
- 其中DockWidgetAreas 定义如下
- 关于Qt的窗口区域
- 其中DockWidgetAreas 定义如下
- void setFeatures(DockWidgetFeatures features)
- 详尽的资料参考Qt Help,有demo,也有类文档
- 简单demo
- win7 Qt5.4
- 来自http://www.cnblogs.com/hanzhaoxin/archive/2012/11/16/2774097.html
- mainwindow.cpp
-
:QMainWindow(parent),ui(newUi::MainWindow)#include"mainwindow.h" #include<QDockWidget> #include<QTextEdit> #include"ui_mainwindow.h" MainWindow::MainWindow(QWidget*parent)
{
ui->setupUi(this); setWindowTitle(tr("Dock Windows")); QTextEdit*edt =newQTextEdit(tr("Main Window"),this); setCentralWidget(edt);//把edt设置为中心控件 //停靠窗口1: QDockWidget*dockWidget1 =newQDockWidget(tr("Dock Window 1"),this); dockWidget1->setFeatures(QDockWidget::DockWidgetMovable); dockWidget1->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea); QTextEdit*edt1 =newQTextEdit(tr("Window 1")); dockWidget1->setWidget(edt1); addDockWidget(Qt::RightDockWidgetArea,dockWidget1); //停靠窗口2: QDockWidget*dockWidget2 =newQDockWidget(tr("Dock Window 2"),this); dockWidget2->setFeatures(QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetClosable); QTextEdit*edt2 =newQTextEdit(tr("Window 2")); dockWidget2->setWidget(edt2); addDockWidget(Qt::LeftDockWidgetArea,dockWidget2); //停靠窗口3: QDockWidget*dockWidget3 =newQDockWidget(tr("Dock Window 3"),this); dockWidget3->setFeatures(QDockWidget::AllDockWidgetFeatures); QTextEdit*edt3 =newQTextEdit(tr("Window 3")); dockWidget3->setWidget(edt3); addDockWidget(Qt::BottomDockWidgetArea,dockWidget3);
}MainWindow::~MainWindow() {
delete ui;
}
-
- 完
Qt浮动窗口
最新推荐文章于 2025-05-28 16:57:19 发布