• 5906阅读
  • 6回复

子窗口位置的问题 [复制链接]

上一主题 下一主题
离线muma
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-25
— 本帖被 XChinux 执行加亮操作(2010-01-26) —
我想在我的应用程序中,将所有的子窗口,包括QMessageBox,显示的位置放置在屏幕中间,而非父窗口的中间,请问该如何做,谢谢。
离线yangfanxing
只看该作者 1楼 发表于: 2010-01-25
1、son = new QWidget(0);

2、son = new QWidget(father);
setWindowFlags(Qt::Dialog);之类的
PHPWind好恶心。。。不想看这种界面。。。
离线午小夜

只看该作者 2楼 发表于: 2010-01-25
也可以用比較笨的方法,獲得屏幕分辨率,算好大小,然後move & show
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线muma
只看该作者 3楼 发表于: 2010-01-25
引用第1楼yangfanxing于2010-01-25 20:51发表的  :
1、son = new QWidget(0);
2、son = new QWidget(father);
setWindowFlags(Qt::Dialog);之类的


好像用dialog没有变化,用window倒是可以在parent之外显示了,不过不是在屏幕中间而是右下角

因为这个程序是开源的,不想用太笨的办法,怕贻笑,呵呵。
离线yangfanxing
只看该作者 4楼 发表于: 2010-01-25

不过不是在屏幕中间而是右下角

这个【只能】你自己move了~~~
PHPWind好恶心。。。不想看这种界面。。。
离线muma
只看该作者 5楼 发表于: 2010-01-25
引用第4楼yangfanxing于2010-01-25 21:19发表的  :
这个【只能】你自己move了~~~

如果只能这样的话,那就不变了。
多谢各位
离线XChinux

只看该作者 6楼 发表于: 2010-01-26
在子窗体构造函数中加入下面代码:
    QRect rect = QApplication::desktop()->availableGeometry();
    move((rect.width() - width()) / 2, (rect.height() - height()) / 2);
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个