张家港市建设局网站,大气集团企业网站源码,WordPress 如何修改底部栏内容,门户网站建设工作领导小组QT停靠窗口QDockWidget类 QDockWidget类简介函数和方法讲解 QDockWidget类简介
QDockWidget 类提供了一个部件#xff0c;它可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动。
QDockWidget 提供了停靠窗口部件的概念#xff0c;也称为工具面板或实用程序窗口。 停靠窗… QT停靠窗口QDockWidget类 QDockWidget类简介函数和方法讲解 QDockWidget类简介
QDockWidget 类提供了一个部件它可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动。
QDockWidget 提供了停靠窗口部件的概念也称为工具面板或实用程序窗口。 停靠窗口是位于 QMainWindow 中央部件周围的停靠部件区域中的辅助窗口。
停靠窗口可以在其当前区域内移动移动到新区域或者浮动例如取消停靠。 QDockWidget的 API 允许程序员限制停靠部件的移动、浮动和关闭以及它们可以放置的区域的能力。
QDockWidget 由标题栏和内容区域组成。标题栏显示停靠窗口部件的窗口标题、浮动按钮和关闭按钮。根据 QDockWidget 的状态浮动和关闭按钮可能被禁用或根本不显示。标题栏和按钮的视觉外观取决于使用的样式。QDockWidget可以作为它子窗口部件的封装通过setWidget()设置子窗口部件。自定义的尺寸提示最小和最大化尺寸已经尺寸策略都必须由子窗口部件来实现。QDockWidget会遵守它们调整它自己的限制包括框架和工具栏。我们不应该为QDockWidget设置尺寸限制因为它们根据QDockWidget是否锁住而改变一个锁住的QDockWidget窗口部件不包括框架和小的工具栏。
QDockWidget对象包含一些特性例如移动、悬浮、关闭等等这些都是枚举类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0R46lf3M-1682740086615)(Pictures/QT基础之停靠窗口QDockWidget类/B_QT基础之停靠窗口QDockWidget类.PNG)]
QDockWidget可以放置的位置也是枚举类型
函数和方法讲解
设置停靠窗口的一般流程如下
创建一个QDockWidget对象的停靠窗体设置此停靠窗体的属性通常调用 setFeatures()以及 setAllowedAreas()新建一个要插入停靠窗体的控件比如 QListWidget、QTextEdit将控件插入停靠窗体调用QDockWidget的setWidget()方法使用 addDockWidget()方法在MainWindow中加入此停靠窗体 setWindowTitle(tr(QT基础之停靠窗口QDockWidget类));QTextEdit *textEdit new QTextEdit(this);textEdit-setText(tr(主窗口));textEdit-setAlignment(Qt::AlignCenter);this-setCentralWidget(textEdit); // 设置 textEdit 为主窗口的中央窗体// 停靠窗口1// 步骤1 创建一个QDockWidget对象的停靠窗体QDockWidget *dock1 new QDockWidget(tr(停靠窗口1),this);// 步骤2 设置此停靠窗体的属性通常调用 setFeatures()以及 setAllowedAreas()dock1-setFeatures(QDockWidget::DockWidgetMovable); // 可移动dock1-setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea); // 可 左侧停靠 和 右侧停靠// 步骤3 新建一个要插入停靠窗体的控件比如 QListWidget、QTextEditQTextEdit *textEdit1 new QTextEdit(this);textEdit1-setText(tr(停靠窗口1,可移动到左侧停靠和右侧停靠));// 步骤4 将控件插入停靠窗体调用QDockWidget的setWidget()方法dock1-setWidget(textEdit1);// 步骤5 使用 addDockWidget()方法在MainWindow中加入此停靠窗体this-addDockWidget(Qt::RightDockWidgetArea,dock1);// 停靠窗口2// 步骤1QDockWidget *dock2 new QDockWidget(tr(停靠窗口2),this);// 步骤2dock2-setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); // 可关闭 可浮动// 步骤3QTextEdit *textEdit2 new QTextEdit(this);textEdit2-setText(tr(停靠窗口2,可关闭 可浮动));// 步骤4dock2-setWidget(textEdit2);// 步骤5this-addDockWidget(Qt::RightDockWidgetArea,dock2);// 停靠窗口3// 步骤1QDockWidget *dock3 new QDockWidget(tr(停靠窗口3),this);// 步骤2dock3-setFeatures(QDockWidget::AllDockWidgetFeatures); // 可移动 可关闭 可浮动// 步骤3QTextEdit *textEdit3 new QTextEdit(this);textEdit3-setText(tr(停靠窗口3,可移动 可关闭 可浮动));// 步骤4dock3-setWidget(textEdit3);// 步骤5this-addDockWidget(Qt::RightDockWidgetArea,dock3);setFeatures(QDockWidget::DockWidgetFeatures features)
设置停靠窗体的特性
QDockWidget::DockWidgetFeatures 指停靠窗口的特性 enum DockWidgetFeature {DockWidgetClosable 0x01,DockWidgetMovable 0x02,DockWidgetFloatable 0x04,DockWidgetVerticalTitleBar 0x08,DockWidgetFeatureMask 0x0f,AllDockWidgetFeatures DockWidgetClosable|DockWidgetMovable|DockWidgetFloatable, // ### Qt 6: removeNoDockWidgetFeatures 0x00,Reserved 0xff};特性说明DockWidgetClosable停靠窗体可关闭DockWidgetMovable停靠窗体可移动DockWidgetFloatable停靠窗体可浮动DockWidgetVerticalTitleBar左侧显示垂直标题栏DockWidgetFeatureMaskMaskAllDockWidgetFeatures可关闭 可移动 可浮动NoDockWidgetFeatures不可关闭 不可移动 不可浮动
setAllowedAreas(Qt::DockWidgetAreas areas)
设置停靠窗体可停靠区域
Qt::DockWidgetAreas指可停靠区域 enum DockWidgetArea {LeftDockWidgetArea 0x1,RightDockWidgetArea 0x2,TopDockWidgetArea 0x4,BottomDockWidgetArea 0x8,DockWidgetArea_Mask 0xf,AllDockWidgetAreas DockWidgetArea_Mask,NoDockWidgetArea 0};特性说明LeftDockWidgetArea可在主窗口左侧停靠RightDockWidgetArea可在主窗口右侧停靠TopDockWidgetArea可在主窗口顶部停靠BottomDockWidgetArea可在主窗口底部停靠DockWidgetArea_MaskMaskAllDockWidgetAreas可在任意部位停靠上面四个NoDockWidgetArea只可停靠在插入出