转载请说明出处, 并附上原文链接http://blog.csdn.net/qq907482638/article/details/72189014.

问题描述

在Qt学习过程中,在让QDialog居中显示的时候, 出现了一点问题. 然而百度的都是大同小异. 都不行.不知道为什么, 难道是我的搜索姿势不对. 于是自己实现了居中显示的函数.

须知

  1. 以下函数只要继承QWidget都可以使用.
  2. 例如 QDialog, QPushButton( -v- 一个居中的”引爆按钮”)
  3. 关于坐标问题: qt窗口坐标原点是在”左上角”的.

    如图, (x2, y2)是我窗口的分辨率的一半
无论目前我的窗口在什么位置,我只要把窗口原点设置为(x1, y1)就行了.
所以目前我要获得(x1, y1)的值, 那就很简单啦.
通过
//app就是当前要居中的窗口
appWindowWidth = app->geometry()->width();
appWindowHeight = app->geometry()->height();
x2 = 屏幕宽度 / 2
y2 = 屏幕高度 / 2
最后:
x1 = x2 - appWindowWidth / 2
y1 = y2 -appWindowHeight / 2
然后把窗口中心设置为(x1, y1)就行了.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

实现细节

void LoginDialog::setCentralDisplay()
{
QDesktopWidget *screenResolution = QApplication::desktop();
int appWindowWidth = this->geometry().width();
int appWindowHeight = this->geometry().height(); int center_y = screenResolution->height()/2 - appWindowHeight/2;
int center_x = screenResolution->width()/2 - appWindowWidth/2;
//此处的Width,Height不要被修改了(例如除以2了)
//不然看起来不是居中的
setGeometry(center_x, center_y,
appWindowWidth,appWindowHeight); //以下用于调试
qDebug()<<"origin_width"<<screenResolution->width();
qDebug()<<"origin_height"<<screenResolution->height();
qDebug()<<"window_width"<<appWindowWidth;
qDebug()<<"window_height"<<appWindowHeight;
qDebug()<<"center"<<center_x;
qDebug()<<"center"<<center_y; }
http://blog.csdn.net/qq907482638/article/details/72189014

QWidget居中显示(qt窗口坐标原点是在”左上角”的,有图)的更多相关文章

  1. QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系

    摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可 ...

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

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

  3. Qt窗口屏幕居中显示

    转自--> http://blog.chinaunix.net/uid-20718335-id-364404.html 窗口的屏幕居中显示问题,在各开发工具中原理相同,首先使用特定的方法得到显示 ...

  4. 【Qt】窗口居中显示

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

  5. Qt 设置窗口居中显示和窗体大小

    设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget ...

  6. python之tkinter使用-窗口居中显示

    # 窗口居中显示 import tkinter as tk def set_win_center(root, curWidth='', curHight=''): ''' 设置窗口大小,并居中显示 : ...

  7. Example005控制弹出窗口居中显示

    <!-- 实例005控制弹出窗口居中显示 --> <head> <meta charset="UTF-8"> </head> < ...

  8. Java_Swing中让窗口居中显示的方法(三种方法)

    方法一: int windowWidth = frame.getWidth(); // 获得窗口宽    int windowHeight = frame.getHeight(); // 获得窗口高 ...

  9. qt用于图片显示的窗口

     用于图片显示的窗口 国产化  

随机推荐

  1. AE地图查询

    原文 AE地图查询 地图查询主要有两种查询:空间查询和属性查询 所用到知识点: 1  Cursor(游标)对象 本质上是一个指向数据的指针,本身不包含数据内容,提供一个连接到ROW对象或者要素对象(F ...

  2. POJ 1979 Red and Black (zoj 2165) DFS

    传送门: poj:http://poj.org/problem?id=1979 zoj:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problem ...

  3. POJ 2014 Flow Layout 模拟

    http://poj.org/problem?id=2014 嘻嘻2014要到啦,于是去做Prob.ID 为2014的题~~~~祝大家新年快乐~~ 题目大意: 给你一个最大宽度的矩形,要求把小矩形排放 ...

  4. 6 、字符编码笔记:ASCII,Unicode和UTF-8

    1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte) ...

  5. PBOC

    http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完 ...

  6. IQueryFielter接口

    IQueryFilter基于属性查询过滤数据.需要定义一个where子句.可以指定要返回值的字段列表.如果没有指定列,将返回所有值.当需要根据属性值和属性的关系过滤数据时,使用该接口. 成员 AddF ...

  7. linux(debian)系统django配远程连接sqlserver数据库

    费了将近一天时间.最终解决,记下来留给须要的人 须要安装的: python-odbc : https://github.com/mkleehammer/pyodbc下载后install 安装pytho ...

  8. UVALive - 4960 Sensor network(生成树+LCA)

    题目大意:给出N个点.M条边.问这N个点形成的生成树的最大权值边-最小权值边的最小值 解题思路:先排序,然后按生成树的kruscal算法进行加边,再维护一个最小权值边 加边的时候要考虑一下加下去的边是 ...

  9. Nutch关于robot.txt的处理 分类: H3_NUTCH 2015-01-28 11:20 472人阅读 评论(0) 收藏

    在nutch中,默认情况下尊重robot.txt的配置,同时不提供配置项以忽略robot.txt. 以下是其中一个解释.即作为apache的一个开源项目,必须遵循某些规定,同时由于开放了源代码,可以简 ...

  10. 【Solr专题之九】SolrJ教程 分类: H4_SOLR/LUCENCE 2014-07-28 14:31 2351人阅读 评论(0) 收藏

    一.SolrJ基础 1.相关资料 API:http://lucene.apache.org/solr/4_9_0/solr-solrj/ apache_solr_ref_guide_4.9.pdf:C ...