Qt中关于setGeometry()函数的问题
2015-06-08 14:00
731 查看
Qt中关于setGeometry()函数的问题
分类: Qt学习2015-04-1921:07 153人阅读 评论(1) 收藏 举报
setGeometry是相对于父窗体来说的一种对子窗体进行位置设置的方法。
当我用在不同的窗体的时候发现有不同的形式
QMainWindow 和QWidget都是相对父窗体来说的,可是QDialog用上这个设置位置的函数,却是相对于桌面而言的。但是按照道理,他们都是继承的QWidget,setGeometry这个函数的功能应该是相同的才对呀。如果说QDialog是顶级窗体的话,那么QMainWindow也是顶级窗体,根本就解释不通,有木有人知道这个现象该怎么解释哇!我的dialog的父窗体不是空,是this,
也就是MainWindow或是widget。
正解:
这里是QT文档里的。
Note that QDialog (an any other widget that has type Qt::Dialog) uses the parent widget slightly differently from other classes in Qt. A dialog is always a top-level widget, but if it has a parent, its default location is centered on top of the parent's top-level
widget (if it is not top-level itself). It will also share the parent's taskbar entry.
QDialog即使有父窗口也是顶层窗口,所以位置是相对桌面的。但一般使用都是不设置它位置的,默认就是在父窗口中间。要设置相对父窗口的位置就先获得父窗口的全局位置,再相加吧。
*********************
想要setGeometry有效,控件就不能在布局里。
如果使用了布局,控件大小有布局自动控制。
相关文章推荐
- Qt 窗体布局
- Qt (QGis) 中动态布局例子
- qt creator使用快捷键和自动补全功能的设置
- Qt笔记-3-LineEdit中使用正则表达
- Qt Creator 窗体控件自适应窗口大小布局
- QT 中怎样使得控件与 界面等比例变化
- Qt笔记-2-简单布局
- 如何在Qt的widget上右键显示菜单
- QTP学习笔记
- QT 鼠标形状设置
- qt屏蔽关闭窗口事件
- qtsdk仓库中国镜像
- 'A previous installation of Qt5 Visual Studio Add-in was detected'解决方案
- QT语法智能提示
- 集成Qt5.2到VS 2013
- 编译安装Qt4(二)
- 双树 节点 C# net Ztree linqtosql 源码
- Qt窗体拖拽的实现方法
- 安装Qt5 (一)
- Qt如何绘制边框,如何画一条线