让Qt窗口在屏幕居中的正确方法

要使用网上转载的技术真是得有相当的辨识度才行,因为最近在玩Qt,窗口初始化位置的属性木有找到,看到网上说是用QdesktopWidget的width和height减去窗口自身大小再/2。

写这个的人到底有没有想过——若是有2个屏幕呢?双显示器很罕见吗?

desktop一般指完整的桌面大小,如果是双屏幕扩展的话就是双屏幕合起来的尺寸;而screen则特指屏幕,primary screen是主屏幕。

正确的代码如下:

QDesktopWidget *pdesktop = QApplication::desktop();
QRect screenRect = pdesktop->screenGeometry();
move((screenRect.width()-this->width())/2, (screenRect.height()-this->height())/2);

 

 

话说:淘宝助理也使用了Qt,并且未经验证使用了转载的错误居中方法。