日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt窗口屏幕居中显示 (ZT)

發布時間:2025/3/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。