• 6956阅读
  • 6回复

设置窗口居中显示 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2012-07-15
  1. void setWindowCenter(QWidget *window,
  2.         double widthScale = 1, double heightScale = 1)
  3. {
  4.     double ws = widthScale < 0.1 ? 0.1 : widthScale;
  5.     double hs = heightScale < 0.1 ? 0.1 : heightScale;
  6.     ws = ws > 1 ? 1 : ws;
  7.     hs = hs > 1 ? 1 : hs;
  8.     QRect rect = QApplication::desktop()->availableGeometry();
  9.     int iTitleHeight = window->style()->pixelMetric(QStyle::PM_TitleBarHeight);
  10.     window->setGeometry(rect.width() * (1 - ws) / 2,
  11.             rect.height() * (1 - hs) / 2 + iTitleHeight,
  12.             rect.width() * ws,
  13.             rect.height() * hs - iTitleHeight);
  14. }


widthScale和heightScale为宽、高缩放系数
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lyjbbq

只看该作者 1楼 发表于: 2012-08-17
支持!!
离线zkzhou_10

只看该作者 2楼 发表于: 2012-08-27
厉害!
离线gesturewei
只看该作者 3楼 发表于: 2012-12-08
Mark,支持楼主~
离线sjpl00
只看该作者 4楼 发表于: 2012-12-11
       支持,收藏
离线chuong

只看该作者 5楼 发表于: 2012-12-13
似乎没考虑多显示器下的居中
离线XChinux

只看该作者 6楼 发表于: 2012-12-14
引用第5楼chuong于2012-12-13 17:28发表的  :
似乎没考虑多显示器下的居中

没有,我这里也没有环境测试,有相关的模拟软件供测试吗?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个