Qt之布局管理——停靠窗口

QDockWidget类继承与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 只可停靠在插入处

时间: 2024-07-30 13:52:15

Qt之布局管理——停靠窗口的相关文章

QT之布局管理器(十九)

我们在之前的 GUI 开发中都是使用的是绝对定位,何谓绝对定位呢?就是我们直接在像素级指定各个组件的位置和大小.比如我们之前使用的 void QWidget::move(int x, int y):void QWidget::resize(int w, int h):这样存在的问题就是组件的位置和大小无法自适应父窗口的变化. 我们先来看看绝对定位的代码和效果是怎样的?头文件代码如下: #include <QWidget> #include <QPushButton> class W

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

Qt学习四 - 布局管理器

开发界面程序,一定会涉及到布局的问题.我们需要让控件显示在理想中的位置,可以直接设置控件的坐标和宽高.但是这样带来一个问题,当用户改变窗口大小时,例如点击最大化按钮或者拖拽窗口边缘,控件是不会改变的(包括控件的坐标和宽高).因为在窗口改变时,你没有告诉程序是否更新控件以及如何更新.如果需要让控件自动更新,那么就要自己来写一些函数来相应这些变化.针对这种情况,Qt提供了一种机制 - 布局,来解决这个问题(大部分用于开发界面程序的语言或者框架,都会提供类似的机制).只需要将控件放入某一种布局,当位置

Qt布局管理器(详解)

1.存在的问题 (1)目前的GUI开发方式:绝对定位 --直接在像素级指定各个组件的位置和大小 void QWidget::move(int x, int y) void QWidget::resize(int w, int h) (2)问题 --组件位置和大小无法自适应父窗口的变化 2.布局管理器 (1)解决方案:布局管理器 --提供相关的类对界面组件进行布局管理 @1:能够自动排列窗口中的界面组件 @2:窗口变化后自动更新界面组件的大小 (2)QLayout是Qt中布局管理器的抽象基类 (3

Qt布局管理器的使用(一)

曾经对Qt的布局管理器掌握的还不清楚,今天特意学习了下.感觉收获还挺大的,特意拿出来和大家分享. 首先.要明确布局管理器的用处,及使我们的界面看起来比較整洁.美化.另外一点就是为了使我们的控件可以更随窗体的大小而变化,窗体大的时候它变大,窗体小的时候它变小. 一般写 好的软件都要能最大化.最小化,非常多时候当我们最大化后,发现控件还是原来的样子.非常难看,如今就不用发愁了,首先用手动布局实现.由于这个比較简单,并且非常直观. 首先贴一张我自己刚布好的局. 还算整洁.这张是它最初的大小,将它最大化

[ PyQt入门教程 ] Qt Designer工具的布局管理

这节课很重要..界面整洁美观与否就看布局了..这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了.. 本文主要讲述Qt Designer工具实现界面控件布局管理,就是排列组合控件.包括水平布局.垂直布局.网格布局.表单布局.至于绝对布局太复杂..短期内hold不住 布局管理打开方法 方法一:Qt Designer -> Form菜单栏 方法二:右键单击主窗口 -> Lay out 四种布局管理介绍 (1)水平布局 Lay Out Horizontally:被选中的控件在水平方向上从左到

Qt系列04 布局管理

本节介绍Qt常用布局管理,QSplitter类.QDockWidget类和QStackedWidget类. QSplitter类 #include "widget.h" #include <QApplication> #include <QSplitter> #include <QLineEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QSplitter *sp

第22课 布局管理器(一)

1. 绝对定位及存在的问题 (1)直接在像素级指定各个组件的位置和大小 void QWidget::move(int x, int y) void QWidget::resize(int w, int h); (2)存在问题:组件的位置和大小无法自适应父窗口的变化 2. 布局管理器 (1)提供相关的类对界面组件进行布局管理 ①能够自动排列窗口中的界面组件 ②窗口变化后自动更新界面组件的大小 (2)QLayout是Qt中布局管理器的抽象基类 (3)通过继承QLayout实现了功能各异且互补的布局管

Qt布局管理器综合实例

1.布局管理器的综合实例------模拟向导用户界面(Windows平台) -----练习开发一个向导用户界面 @1:在同一界面上展现不同的向导页面 @2:通过上一步和下一步按钮进行切换 @3:不同页面上的元素组件和这些组件排布都不相同 @4:页面中的组件通过布局管理进行排布 (1)通过布局嵌套进行界面设计 @1:上一步和下一步这两个按钮用水平布局管理器QHBoxLayout来进行管理,不同页面上的显示的内容只有按钮不变,所以讲不同页面的内容用栈式布局管理器QStackedLayout进行管理,