Qt窗口屏幕居中显示
转自--》 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窗口屏幕居中显示的更多相关文章
- Qt窗口屏幕居中显示(有专门的QDesktopWidget,先计算后显示)
窗口的屏幕居中显示问题,在各开发工具中原理相同,首先使用特定的方法得到显示屏幕的宽度和高度,再根据窗口本身的宽度和高度计算出窗口的左上角坐标位置. Qt中可以采用两种方法达到窗口的屏幕居中显示: 方法 ...
- 关于JFame 屏幕居中显示的问题
场景: 在利用 JAVA 的 Swing 开发 C/S 架构 的前端界面 目的: 想让 JFrame 居中显示在整个 屏幕的正中位置 方法一:JFrame frame = new JFr ...
- Qt窗口的屏幕居中显示
QDesktopWidget *pDesk = QApplication::desktop(); login->move((pDesk->width() - login->width ...
- QT设置窗口屏幕居中
int main(int argc, char *argv[]){ QApplication ap(argc, argv); QDesktopWidget *pDesk = QApplicatio ...
- js打开新窗口并且居中显示
function openwindow(url,name,iWidth,iHeight) { var url; //转向网页的地址; var name; //网页名称,可为空; var iWidth; ...
- 设置easyUI-dialog窗口居中显示
默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...
- easyUI dialog 弹窗 居中显示
默认情况下应该是在屏幕居中显示的.但是有的时候没有居中只要重新纠正下就可以了 $('#add_dialog').dialog('open'); //打开添加对话框 $('#add_dialog').w ...
- 【Qt】窗口居中显示
w.move((a.desktop()->width() - w.width())/, (a.desktop()->height() - w.height())/); 上述方法可以置中,但 ...
- QWidget居中显示(qt窗口坐标原点是在”左上角”的,有图)
转载请说明出处, 并附上原文链接http://blog.csdn.net/qq907482638/article/details/72189014. 问题描述 在Qt学习过程中,在让QDialog居中 ...
随机推荐
- fastjson List<> 转Json , Json 转List<>
SerializeWriter:相当于StringBuffer JSONArray:相当于List<Object> JSONObject:相当于Map<String, Object& ...
- Debug与Trace工具类的应用
在写Console程序的时候,能够使用Console.WriteLine()来时时的输出程序的执行状态和各种參数此刻的信息.可是假设是Windows Form程序,我们要怎样实时的观測程序的执行状况呢 ...
- lua学习笔记(五)
语句 赋值 多重赋值 a, b, c, d = 1, 2, 3, 4 a, b, c = 1, 2 assert(c == ni ...
- centos7 配置ssh 免密码登陆
我只有一台机器,是因为要配置hadoop分布式环境用,需要配置ssh 两个用户: zhangxs, root 首先在切换到zhangxs用户下 执行[ ssh-keygen -t rsa] [zhan ...
- __must_check必须处理函数返回值
include/linux/compiler-gcc4.h #define __must_check __attribute__((warn_unused_result)) _ ...
- 【PHP】富文本HTML过滤器:HTMLPurifier使用教程(防止XSS)
在编程开发时安全问题是及其重要的,对于用户提交的数据要进行过滤,XSS就是需要重视的一点,先说一下什么是XSS,简单来说就是用户提交数据(例如发 表评论,发表日志)时往Web页面里插入恶意javasc ...
- python操作Excel读写--使用xlrd (转)
(转自:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html) 一.安装xlrd模块 到python官网下载http://pypi ...
- iPhone 和 iPad的ios 开发中 利用 WebViewJavascriptBridge组件,通过 UIWebView 对Html进行双向通讯
本文转载至 http://blog.csdn.net/remote_roamer/article/details/7261490 WebViewJavascriptBridge 项目的 官网 http ...
- 我自己曾经经历的CMMI3认证通过关于软件测试的访谈【转载】
转自<http://blog.csdn.net/jcy58/article/details/51908884> 因为当初我在公司里是负责软件测试工作的,所以CMMI3和测试相关的访谈,就是 ...
- java拾遗3----XML解析(三) StAX PULL解析
使用PULL方式解析XML: Pull是STAX的一个实现 StAX是The Streaming API for XML的缩写,一种利用拉模式解析(pull-parsing)XML文档的API StA ...