QDockWidget 停靠窗口和工具栏

阅读更多

 

转:http://blog.csdn.net/a649518776/article/details/6636490

QDockWidget 停靠窗口和工具栏_第1张图片

 

下面用代码实现上面窗口的设计:

1.建立项目时基类选择QMainWindow,取消Gernerate form复选框的选中状态。

2.在源文件mainwindow.cpp中编写如下代码:

[cpp]  view plain copy
  1. #include "mainwindow.h"  
  2. #include   
  3. #include   
  4. MainWindow::MainWindow(QWidget *parent)  
  5.     : QMainWindow(parent)  
  6. {  
  7.     //设置主窗口  
  8.     setWindowTitle(tr("DockWindwos"));  
  9.     QTextEdit *te=new QTextEdit(this);  
  10.     te->setText(tr("Main Window"));  
  11.     te->setAlignment(Qt::AlignCenter);  
  12.     setCentralWidget(te);  
  13.     //设置停靠窗口1  
  14.     QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);  
  15.     dock->setFeatures(QDockWidget::DockWidgetMovable);  
  16.     dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);  
  17.     QTextEdit *te1=new QTextEdit();  
  18.     te1->setText(tr("Window1,The dock widget can be moved between docks by the user"));  
  19.     dock->setWidget(te1);  
  20.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  21.     //设置停靠窗口2  
  22.     dock=new QDockWidget(tr("DockWindow2"),this);  
  23.     dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);  
  24.     QTextEdit *te2=new QTextEdit();  
  25.     te2->setText(tr("Window2,The dock widget can floated and can be closed"));  
  26.     dock->setWidget(te2);  
  27.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  28.     //设置停靠窗口3  
  29.     dock=new QDockWidget(tr("DockWindow3"),this);  
  30.     dock->setFeatures(QDockWidget::AllDockWidgetFeatures);  
  31.     QTextEdit *te3=new QTextEdit();  
  32.     te3->setText(tr("Window3,The dock widget can be closed, moved and floated"));  
  33.     dock->setWidget(te3);  
  34.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  35. }  
  36.   
  37. MainWindow::~MainWindow()  
  38. {  
  39.   
  40. }  



 

 

解析:

1.创建一个QDockWidget对象的停靠窗体:

 

QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);

第一个参数是停靠窗体的名称,第二个参数是停靠窗体的父窗体。

 


2.设置此停靠窗体的属性:

dock->setFeatures(QDockWidget::DockWidgetMovable);

 

设置停靠窗体特性:

×可关闭:有一个关闭按钮

×可移动:

QDockWidget 停靠窗口和工具栏_第2张图片

将DockWindow移动到左边了。

×可浮动:

QDockWidget 停靠窗口和工具栏_第3张图片

DockWindow3可以单独脱离主窗口浮动出来。

×其他参数:

QDockWidget::AllDockWidgetFeatures //拥有所有属性
QDockWidget::NoDockWidgetFeatures //不可移动,不可关闭,不可浮动

 

3.将TextEdit加入停靠窗体

dock->setWidget(te1);

 

4.将停靠窗体加入主窗体中

addDockWidget(Qt::RightDockWidgetArea,dock);

 

最后编译运行:

QDockWidget 停靠窗口和工具栏_第4张图片

你可能感兴趣的:(QDockWidget,停靠窗口,工具栏)