Qt之布局管理——停靠窗口
2012-11-16 22:21
330 查看
QDockWidget类继承与QWidget类,用于停靠窗口的管理。在主窗口中,先设置中心控件,然后实例化QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过
setAllowedAreas( )设置窗体可停靠的区域。具体如下:
void setFeatures(DockWidgetFeatures features )
void setAllowedAreas ( Qt::DockWidgetAreas areas )
dockwindows.h
dockwindows.cpp
在本例中还用到了QMainWindow类的addDockWidget()方法。使用情况请查阅QtAssistant。
setAllowedAreas( )设置窗体可停靠的区域。具体如下:
void setFeatures(DockWidgetFeatures features )
QDockWidget::DockWidgetClosable | 停靠窗可关闭 |
QDockWidget::DockWidgetMovable | 停靠窗可移动 |
QDockWidget::DockWidgetFloatable | 停靠窗可浮动 |
QDockWidget::DockWidgetVerticalTitleBar | 标题栏垂直放置 |
QDockWidget::AllDockWidgetFeatures | 可关闭、可移动、可浮动 |
QDockWidget::NoDockWidgetFeatures | 不可关闭、不可移动、不可浮动 |
Qt::LeftDockWidgetArea | 可在中央控件的左侧停靠 |
Qt::RightDockWidgetArea | 可在中央控件的右侧停靠 |
Qt::TopDockWidgetArea | 可在中央控件的顶部停靠 |
Qt::BottomDockWidgetArea | 可在中央控件的底部停靠 |
Qt::AllDockWidgetAreas | 可在中央控件的任意方向停靠 |
Qt::NoDockWidgetArea | 只可停靠在插入处 |
#ifndef DOCKWINDOWS_H #define DOCKWINDOWS_H #include <QtGui> class DockWindows : public QMainWindow { Q_OBJECT public: DockWindows(QWidget *parent = 0, Qt::WFlags flags = 0); ~DockWindows(); }; #endif // DOCKWINDOWS_H
dockwindows.cpp
#include "dockwindows.h" #include <QDockWidget> DockWindows::DockWindows(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { setWindowTitle(tr("Dock Windows")); QTextEdit *edt = new QTextEdit(tr("Main Window"),this); setCentralWidget(edt); //把edt设置为中心控件 //停靠窗口1: QDockWidget *dockWidget1 = new QDockWidget(tr("Dock Window 1"),this); dockWidget1->setFeatures(QDockWidget::DockWidgetMovable); dockWidget1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); QTextEdit *edt1 = new QTextEdit(tr("Window 1")); dockWidget1->setWidget(edt1); addDockWidget(Qt::RightDockWidgetArea,dockWidget1); //停靠窗口2: QDockWidget *dockWidget2 = new QDockWidget(tr("Dock Window 2"),this); dockWidget2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable); QTextEdit *edt2 = new QTextEdit(tr("Window 2")); dockWidget2->setWidget(edt2); addDockWidget(Qt::LeftDockWidgetArea,dockWidget2); //停靠窗口3: QDockWidget *dockWidget3 = new QDockWidget(tr("Dock Window 3"),this); dockWidget3->setFeatures(QDockWidget::AllDockWidgetFeatures); QTextEdit *edt3 = new QTextEdit(tr("Window 3")); dockWidget3->setWidget(edt3); addDockWidget(Qt::BottomDockWidgetArea,dockWidget3); } DockWindows::~DockWindows() { }
在本例中还用到了QMainWindow类的addDockWidget()方法。使用情况请查阅QtAssistant。
相关文章推荐
- Qt之布局管理——停靠窗口
- Qt之布局管理——停靠窗口
- Qt5开发学习之布局管理(三)
- Qt 第6章 布局管理(2) 分组布局 学习笔记
- QT 布局管理
- Qt学习:布局管理的使用方法
- Qt的布局管理
- QT 布局管理
- 详解 QT 布局管理界面 图文并茂
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- QT5布局管理--停靠窗口QDock Widget
- Qt 第6章 布局管理(3) 切分布局管理 学习笔记
- Qt4 布局管理经验总结
- 详解 QT 布局管理界面 图文并茂
- QT学习 第二章:布局管理--基本布局管理
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- Qt布局管理之设置控件之间的间距
- 关于qt的布局管理
- ------------------------Qt布局管理-------------------
- Qt之布局管理--(2)多文档的布局和焦点