QWidget居中显示

QWidget居中显示须知以下函数只要继承QWidget都可以使用. 例如QDialog,QPushButton(-v-一个居中的”引爆按钮”) 关于坐标问题:qt窗口坐标原点是在”左上角”的.如图,(x2,y2)是我窗口的分辨率的一半无论目前我的窗口在什么位置,我只要把窗口原点设置为(x1,y1)就行了.所以目前我要获得(x1,y1)的值,那就很…

大家好,欢迎来到IT知识分享网。

须知

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

QWidget居中显示

如图, (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)就行了.

实现细节

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;
}

参考:

https://www.yuque.com/docs/share/0b789e2c-6aa9-4c2b-85dd-93f28c2216f0

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11299.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信