Qt入门(7)——窗口几何结构

时间:2022-09-02 23:00:32

QWidget提供了几个处理窗口几何结构的函数。这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架。它们之间的区别在某种意义上被完成覆盖明显地最普通的方法。

包括窗口的框架:
x(), y(), frameGeometry(), pos() and move()
不包括窗口的框架:
geometry(), width(), height(), rect() and size()
请注意这这种区别仅仅对于被装饰的顶层窗口部件有效。对于所有的子窗口部件,框架的几何结构和这个窗口部件的客户几何结构相同。

Qt入门(7)——窗口几何结构

这个图显示了我们所使用的绝大多数函数:

aaarticlea/png;base64,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" alt="" />

Unix/X11特性

在Unix/X11中,一个窗口没有框架直到窗口管理器来装饰它。这种情况发生在异步情况下调用show()之后和窗口接收到第一个绘画事件的一些点中,否则它根本就不会发生。请记住X11是*策略的(其它人把它称为灵活的)。因此你不能作出关于你的窗口得到装饰框架这样的任何安全假设。基本规则:总是会有用户使用窗口管理器来打破你的假设,并且他还会向你抱怨。

此外,一个工具包不能简单地把窗口放置到屏幕上。Qt所能做的一切是把一些确定的提示发送给窗口管理器。窗口管理器,一个单独的进程,也许会遵守、忽略或者误解它们。由于部分不清楚的客户间通信约定(ICCCM),在存在的窗口管理器中窗口放置的处理非常困难。

当窗口被装饰的时候,X11没有提供标准的或者容易的方式来获得框架的几何结构。Qt使用了可以工作在今天存在的大量的窗口管理器中的非常富有启发性和巧妙的代码来解决这一问题。如果你发现某种情况下frameGeometry()返回了虚假的结果的时候,请不要惊讶。

X11同样也不提供最大化一个窗口的方法。因此Qt中的showMaximized()函数不得不模拟这一功能。它的结果完全取决于frameGeometry()的结果和窗口管理器作出正确的窗口放置的能力,但这两个都不能被保证。

恢复窗口几何结构

现代的应用程序的一个普通任务就是在稍后的对话中恢复一个窗口的几何结构。在Windows中,这基本上通过存储geometry()的结果和在下一个对话中还没有框架之前调用setGeometry()。在X11中,这样将不会工作,因为一个没有显示的窗口还没有框架呢。窗口管理器将会在稍后装饰这个窗口。当这些发生的时候,窗口朝着依赖于装饰框架的大小的屏幕的右下角偏移。X从理论上提供了一种可以避免这种偏移的方法。尽管,我们的测试已经显示,绝大多数窗口管理器都不能实现这一特性。

一个工作区在show()之后调用setGeometry()。这样做有两个缺点,是窗口部件会在一毫秒中出现在一个错误的位置(结果是闪烁)和通常在一秒之后窗口管理器会正确地得到它。一个安全的方式是存储pos()和size()并且在show()之前调用resize()和move()来恢复几何结构,就像下面这个例子一样装饰:

    MyWidget* widget = new MyWidget
...
QPoint p = widget->pos(); // 存储位置
QSize s = widget->size(); // 存储大小
...
widget = new MyWidget;
widget->resize( s ); // 恢复大小
widget->move( p ); // 恢复位置
widget->show(); // 显示窗口部件

这种方法可以在MS-Windows和绝大多数现存的X11窗口管理器上工作

Qt入门(7)——窗口几何结构的更多相关文章

  1. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  2. Qt入门之基础篇(三):掌握Qt4的静态编译基本方法

    转载载请注明出处:CN_Simo. 导语: 前两章都提到过“静态编译”(Static Compilation),在Windows下一次静态编译差不多需要长达三个小时才能完成,而且还非常容易由于各种原因 ...

  3. Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)

    Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...

  4. QT中关于窗口全屏显示与退出全屏的实现

    近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...

  5. Qt入门学习——Qt 5 帮助文档的使用

    Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...

  6. Qt创建堆叠窗口

    1.QT创建堆叠窗口使用类,但是使用它时主窗口不能是MainWindow,否则会出现布局错误,本例中使用基类为QDialog QStackedWidget 2.可以配合列表框QListWidget和Q ...

  7. Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装

    转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...

  8. QT学习之窗口右键菜单

    #QT学习之窗口右键菜单 QWidget 及其子类都有右键菜单,主要因为其有两个与右键菜单相关联的函数: Qt::ContextMenuPolicy contextMenuPlicy() const ...

  9. QT 创建主窗口 MainWindow 实例

    1. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include & ...

随机推荐

  1. C&num; Form&period;Close 的释放问题

    今天使用From窗口Close后,发现From的资源还存在,并没有释放资源,只有在程序关闭的时候才去释放. Form1:button按钮 private void button1_Click(obje ...

  2. IE6&sol;7&sol;8兼容问题、时间对象返回NAN

    IE浏览器不支持new Date()带"2,31,2013"这样格式的参数,要换成“2/31/2013”.'2013-05-05'.replace(/-/g,'/')

  3. anjular中Service、Factory、Provider的使用与js中创建对象的总结

    在学习anjular中Service的使用时,发现和js中的创建对象的方式有一定的联系,所以总结了anjular中Service.Factory.Provider的使用方式与js创建对象的方式 一.先 ...

  4. python&comma; generator&period;next&lpar;&rpar;和send&lpar;&rpar;

    对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数. 然后第二个next调用,进入生成器函数后,从y ...

  5. C&plus;&plus; 提取网页内容系列之四正则

    标 题: C++ 提取网页内容系列之四作 者: itdef链 接: http://www.cnblogs.com/itdef/p/4173833.html 欢迎转帖 请保持文本完整并注明出处 将网页内 ...

  6. 微信小程序如何套用iconfont

    前言 如果你在开发微信时,没有图标的话,可以到http://www.iconfont.cn/ 官方下使用图标,那么我们去使用一些吧,到官方网址下点击使用~ 下载代码即可使用,看看下载的文件吧. 如图可 ...

  7. numpy文件操作

    import numpy as np print '读取csv文件做为数组' arr = np.loadtxt('array_ex.txt', delimiter = ',') print arr i ...

  8. async函数对比Generator函数

    首先定义一个读取文件的异步函数 var readFile = function(fileName){ return new Promise((resolve,reject)=>{ fs.read ...

  9. 1&period;正则re

    正则 :规则表达式 一般在匹配非结构化的数据时用的比较多,结构化的数据一般用xpath,bs4.但具体使用起来都是视情况而定,相对而言.正则规则平时涉及最多也就是匹配邮箱,电话,及特殊字符串.规则相对 ...

  10. &lbrack;转帖&rsqb; windows server 不同版本说明

    Windows Server 2016与Windows Server Current Version区别比较  http://365vcloud.net/2018/04/13/windows-serv ...