您的位置:首页 > 编程语言 > Qt开发

Qt学习——停靠窗体QDockWidget类

2016-08-26 19:22 260 查看
一下是我写的停靠窗口例子:



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

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

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

[cpp] view
plain copy

 print?

#include "mainwindow.h"  

#include <QTextEdit>  

#include <QDockWidget>  

MainWindow::MainWindow(QWidget *parent)  

    : QMainWindow(parent)  

{  

    //设置主窗口  

    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);  

}  

  

MainWindow::~MainWindow()  

{  

  

}  

解析:

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);


最后编译运行:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: