Qt窗口屏幕居中显示 (ZT)
窗口的屏幕居中顯示問(wèn)題,在各開(kāi)發(fā)工具中原理相同,首先使用特定的方法得到顯示屏幕的寬度和高度,再根據(jù)窗口本身的寬度和高度計(jì)算出窗口的左上角坐標(biāo)位置.
?? Qt中可以采用兩種方法達(dá)到窗口的屏幕居中顯示:
方法一: 顯示前先計(jì)算出窗口顯示位子,并移到對(duì)應(yīng)位子后再顯示窗口
int main(int argc, char *argv[]) { QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030")); QApplication a(argc, argv);
QDesktopWidget *pDesk = QApplication::desktop(); CVxMainWindow w(pDesk); w.move((pDesk->width() - w.width()) / 2, (pDesk->height() - w.height()) / 2); w.show(); return a.exec(); }
??? 在窗體類的構(gòu)造方法中,如果使用 setFixedSize(800, 600); 設(shè)置了窗口的固定大小, 則運(yùn)行程序時(shí)能達(dá)到窗口居中顯示效果, 否則窗口并不能按所期望的居中顯示在屏幕中,需要采用下面的方法,在移動(dòng)和顯示窗口前重新設(shè)置下窗口的大小.
int main(int argc, char *argv[]) { QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030")); QApplication a(argc, argv);
QDesktopWidget *pDesk = QApplication::desktop(); CVxMainWindow w(pDesk); w.resize(800, 600); w.move((pDesk->width() - w.width()) / 2, (pDesk->height() - w.height()) / 2); w.show(); return a.exec(); }
方法二: 窗口顯示后再移動(dòng)到合適的位子
int main(int argc, char *argv[]) { QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030")); QApplication a(argc, argv);
QDesktopWidget *pDesk = QApplication::desktop(); CVxMainWindow w(pDesk);
w.show(); w.move((pDesk->width() - w.width()) / 2, (pDesk->height() - w.height()) / 2); ? return a.exec(); }
先顯示后移動(dòng)容易產(chǎn)生窗口閃爍,本人不建議采用方法二.
?
注意:
1 使用QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));
? 請(qǐng)引入: #include <QtCore/QtCore>
2 不能將參數(shù) 1 從“QDesktopWidget *”轉(zhuǎn)換為“QWidget *”
? 請(qǐng)引入: #include <QtGUI/QtGUI>
轉(zhuǎn)載于:https://www.cnblogs.com/Rick-w/archive/2012/03/05/2381051.html
總結(jié)
以上是生活随笔為你收集整理的Qt窗口屏幕居中显示 (ZT)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构基础(7) --循环队列的设计
- 下一篇: Linux用户管理案例(第二版)