代码
FirstQT::FirstQT(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//设置主窗口
setWindowTitle(tr("DockWindwos"));
QTextEdit *te=new QTextEdit(this);
te->setText(tr("Main Window"));
te->setAlignment(Qt::AlignCenter);
setCentralWidget(te);
//设置停靠窗口1
QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);
dock->setFeatures(QDockWidget::DockWidgetMovable);
dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *te1=new QTextEdit();
te1->setText(tr("Window1,The dock widget can be moved between docks by the user"));
dock->setWidget(te1);
addDockWidget(Qt::RightDockWidgetArea,dock);
//设置停靠窗口2
dock=new QDockWidget(tr("DockWindow2"),this);
dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);
QTextEdit *te2=new QTextEdit();
te2->setText(tr("Window2,The dock widget can floated and can be closed"));
dock->setWidget(te2);
addDockWidget(Qt::RightDockWidgetArea,dock);
//设置停靠窗口3
dock=new QDockWidget(tr("DockWindow3"),this);
dock->setFeatures(QDockWidget::AllDockWidgetFeatures);
QTextEdit *te3=new QTextEdit();
te3->setText(tr("Window3,The dock widget can be closed, moved and floated"));
dock->setWidget(te3);
addDockWidget(Qt::RightDockWidgetArea,dock);
}
效果
使用到的函数:
features : DockWidgetFeatures
This property holds whether the dock widget is movable, closable, and floatable.
By default, this property is set to a combination of DockWidgetClosable, DockWidgetMovable and DockWidgetFloatable.
Access functions:
DockWidgetFeatures | features() const |
void | setFeatures(DockWidgetFeatures features) |
Notifier signal:
void | featuresChanged(QDockWidget::DockWidgetFeatures features) |
其中,DockWidgetFeature为:
enum QDockWidget::DockWidgetFeature
flags QDockWidget::DockWidgetFeatures
Constant | Value | Description |
---|---|---|
QDockWidget::DockWidgetClosable | 0x01 | The dock widget can be closed. On some systems the dock widget always has a close button when it's floating (for example on MacOS 10.5). |
QDockWidget::DockWidgetMovable | 0x02 | The dock widget can be moved between docks by the user. |
QDockWidget::DockWidgetFloatable | 0x04 | The dock widget can be detached from the main window, and floated as an independent window. |
QDockWidget::DockWidgetVerticalTitleBar | 0x08 | The dock widget displays a vertical title bar on its left side. This can be used to increase the amount of vertical space in a QMainWindow. |
QDockWidget::AllDockWidgetFeatures | DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable | (Deprecated) The dock widget can be closed, moved, and floated. Since new features might be added in future releases, the look and behavior of dock widgets might change if you use this flag. Please specify individual flags instead. |
QDockWidget::NoDockWidgetFeatures | 0x00 | The dock widget cannot be closed, moved, or floated. |
allowedAreas : Qt::DockWidgetAreas
This property holds areas where the dock widget may be placed.
The default is Qt::AllDockWidgetAreas.
Access functions:
Qt::DockWidgetAreas | allowedAreas() const |
void | setAllowedAreas(Qt::DockWidgetAreas areas) |
Notifier signal:
void | allowedAreasChanged(Qt::DockWidgetAreas allowedAreas) |
enum Qt::DockWidgetArea
flags Qt::DockWidgetAreas
Constant | Value |
---|---|
Qt::LeftDockWidgetArea | 0x1 |
Qt::RightDockWidgetArea | 0x2 |
Qt::TopDockWidgetArea | 0x4 |
Qt::BottomDockWidgetArea | 0x8 |
Qt::AllDockWidgetAreas | DockWidgetArea_Mask |
Qt::NoDockWidgetArea | 0 |