Qt 布局管理 - 停靠窗口

[摘要]DockWidget类继承与QWidget类,用于停靠窗口的管理,本文介绍Qt 布局管理之停靠窗口,并提供简单的示例代码供参考。

DockWidget类继承与QWidget类,用于停靠窗口的管理。在主窗口中,先设置中心控件,然后实例化 QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过setAllowedAreas( )设置窗体可停靠的区域。具体如下:

void setFeatures(DockWidgetFeatures features )

QDockWidget::DockWidgetClosable停靠窗可关闭
QDockWidget::DockWidgetMovable停靠窗可移动
QDockWidget::DockWidgetFloatable停靠窗可浮动
QDockWidget::DockWidgetVerticalTitleBar标题栏垂直放置
QDockWidget::AllDockWidgetFeatures可关闭、可移动、可浮动
QDockWidget::NoDockWidgetFeatures不可关闭、不可移动、不可浮动

void setAllowedAreas ( Qt::DockWidgetAreas areas )

Qt::LeftDockWidgetArea可在中央控件的左侧停靠
Qt::RightDockWidgetArea可在中央控件的右侧停靠
Qt::TopDockWidgetArea可在中央控件的顶部停靠
Qt::BottomDockWidgetArea可在中央控件的底部停靠
Qt::AllDockWidgetAreas可在中央控件的任意方向停靠
Qt::NoDockWidgetArea只可停靠在插入处

dockwindows.h

#ifndef DOCKWINDOWS_H
#define DOCKWINDOWS_H
#include <QtGui>
class DockWindows : public QMainWindow
{
Q_OBJECT
public:
DockWindows(QWidget *parent = 0Qt::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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值