转自--》 http://blog.chinaunix.net/uid-20718335-id-364404.html

窗口的屏幕居中显示问题,在各开发工具中原理相同,首先使用特定的方法得到显示屏幕的宽度和高度,再根据窗口本身的宽度和高度计算出窗口的左上角坐标位置.

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>

Qt窗口屏幕居中显示的更多相关文章

  1. Qt窗口屏幕居中显示(有专门的QDesktopWidget,先计算后显示)

    窗口的屏幕居中显示问题,在各开发工具中原理相同,首先使用特定的方法得到显示屏幕的宽度和高度,再根据窗口本身的宽度和高度计算出窗口的左上角坐标位置. Qt中可以采用两种方法达到窗口的屏幕居中显示: 方法 ...

  2. 关于JFame 屏幕居中显示的问题

    场景:    在利用 JAVA  的 Swing 开发 C/S 架构 的前端界面 目的:    想让 JFrame 居中显示在整个 屏幕的正中位置 方法一:JFrame frame = new JFr ...

  3. Qt窗口的屏幕居中显示

    QDesktopWidget *pDesk = QApplication::desktop(); login->move((pDesk->width() - login->width ...

  4. QT设置窗口屏幕居中

    int main(int argc, char *argv[]){  QApplication ap(argc, argv);  QDesktopWidget *pDesk = QApplicatio ...

  5. js打开新窗口并且居中显示

    function openwindow(url,name,iWidth,iHeight) { var url; //转向网页的地址; var name; //网页名称,可为空; var iWidth; ...

  6. 设置easyUI-dialog窗口居中显示

    默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...

  7. easyUI dialog 弹窗 居中显示

    默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...

  8. 【Qt】窗口居中显示

    w.move((a.desktop()->width() - w.width())/, (a.desktop()->height() - w.height())/); 上述方法可以置中,但 ...

  9. QWidget居中显示(qt窗口坐标原点是在”左上角”的,有图)

    转载请说明出处, 并附上原文链接http://blog.csdn.net/qq907482638/article/details/72189014. 问题描述 在Qt学习过程中,在让QDialog居中 ...

随机推荐

  1. fastjson List<> 转Json , Json 转List<>

    SerializeWriter:相当于StringBuffer JSONArray:相当于List<Object> JSONObject:相当于Map<String, Object& ...

  2. Debug与Trace工具类的应用

    在写Console程序的时候,能够使用Console.WriteLine()来时时的输出程序的执行状态和各种參数此刻的信息.可是假设是Windows Form程序,我们要怎样实时的观測程序的执行状况呢 ...

  3. lua学习笔记(五)

    语句     赋值         多重赋值         a, b, c, d = 1, 2, 3, 4         a, b, c = 1, 2         assert(c == ni ...

  4. centos7 配置ssh 免密码登陆

    我只有一台机器,是因为要配置hadoop分布式环境用,需要配置ssh 两个用户: zhangxs, root 首先在切换到zhangxs用户下 执行[ ssh-keygen -t rsa] [zhan ...

  5. __must_check必须处理函数返回值

    include/linux/compiler-gcc4.h  #define __must_check            __attribute__((warn_unused_result)) _ ...

  6. 【PHP】富文本HTML过滤器:HTMLPurifier使用教程(防止XSS)

    在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是用户提交数据(例如发 表评论,发表日志)时往Web页面里插入恶意javasc ...

  7. python操作Excel读写--使用xlrd (转)

    (转自:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html) 一.安装xlrd模块 到python官网下载http://pypi ...

  8. iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯

    本文转载至 http://blog.csdn.net/remote_roamer/article/details/7261490 WebViewJavascriptBridge 项目的 官网 http ...

  9. 我自己曾经经历的CMMI3认证通过关于软件测试的访谈【转载】

    转自<http://blog.csdn.net/jcy58/article/details/51908884> 因为当初我在公司里是负责软件测试工作的,所以CMMI3和测试相关的访谈,就是 ...

  10. java拾遗3----XML解析(三) StAX PULL解析

    使用PULL方式解析XML: Pull是STAX的一个实现 StAX是The Streaming API for XML的缩写,一种利用拉模式解析(pull-parsing)XML文档的API StA ...