Qt窗口屏幕居中显示 (ZT)
窗口的屏幕居中顯示問題,在各開發工具中原理相同,首先使用特定的方法得到顯示屏幕的寬度和高度,再根據窗口本身的寬度和高度計算出窗口的左上角坐標位置.
?? Qt中可以采用兩種方法達到窗口的屏幕居中顯示:
方法一: 顯示前先計算出窗口顯示位子,并移到對應位子后再顯示窗口
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(); }
??? 在窗體類的構造方法中,如果使用 setFixedSize(800, 600); 設置了窗口的固定大小, 則運行程序時能達到窗口居中顯示效果, 否則窗口并不能按所期望的居中顯示在屏幕中,需要采用下面的方法,在移動和顯示窗口前重新設置下窗口的大小.
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(); }
方法二: 窗口顯示后再移動到合適的位子
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(); }
先顯示后移動容易產生窗口閃爍,本人不建議采用方法二.
?
注意:
1 使用QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));
? 請引入: #include <QtCore/QtCore>
2 不能將參數 1 從“QDesktopWidget *”轉換為“QWidget *”
? 請引入: #include <QtGUI/QtGUI>
轉載于:https://www.cnblogs.com/Rick-w/archive/2012/03/05/2381051.html
總結
以上是生活随笔為你收集整理的Qt窗口屏幕居中显示 (ZT)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构基础(7) --循环队列的设计
- 下一篇: 免费下载精美网站模板的25个网站推荐