Qt学习——停靠窗体QDockWidget类

来源:互联网 发布:php程序设计是做什么的 编辑:程序博客网 时间:2024/04/29 21:24

一下是我写的停靠窗口例子:




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

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

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

[cpp] view plain copy
 print?
  1. #include "mainwindow.h"  
  2. #include <QTextEdit>  
  3. #include <QDockWidget>  
  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);

设置停靠窗体特性:

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

×可移动:


将DockWindow移动到左边了。

×可浮动:


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

×其他参数:

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


3.将TextEdit加入停靠窗体

dock->setWidget(te1);


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

addDockWidget(Qt::RightDockWidgetArea,dock);


最后编译运行:



0 0
原创粉丝点击