精华内容
下载资源
问答
  • Qt窗口居中

    2012-08-14 10:25:08
    1、  mw.move(QApplication::desktop().width()/2,QApplication::desktop().height()/2); 2、 int w = 800, h = 600 int x = GetSystemMetrics( SM_CXSCREEN );...int y = GetSystemMetrics( SM_CYSCREEN );...
    
    

    1、

      mw.move(QApplication::desktop().width()/2,QApplication::desktop().height()/2);

    2、

    int w = 800, h = 600
    int x = GetSystemMetrics( SM_CXSCREEN );
    int y = GetSystemMetrics( SM_CYSCREEN );
    setGeometry( (x-w)/2, (y-h)/2, w, h );

    第一种方法我用得很好,第二种方法试了,没效果,可能没试好。

    展开全文
  • qt窗口居中显示

    2020-06-19 10:14:01
    QDesktopWidget *desktop = QApplication::desktop(); Q_ASSERT(desktop != nullptr); QPoint last_new_window_pos_; const QRect geometry = desktop->availableGeometry(QCursor::pos());...
    
       QDesktopWidget *desktop = QApplication::desktop();
        Q_ASSERT(desktop != nullptr);
        QPoint last_new_window_pos_;
        const QRect geometry = desktop->availableGeometry(QCursor::pos());
        if (windows_.isEmpty() || windows_.size() == 1) {
            const QPoint center = geometry.center();
            return QPoint(center.x() - saveWidth / 2, center.y() - saveHeight / 2);
        } else {
        	
            last_new_window_pos_.setX(last_new_window_pos_.x() + 30);
            last_new_window_pos_.setY(last_new_window_pos_.y() + 30);
            if ((last_new_window_pos_.x() + saveWidth >= geometry.width()) ||
                    (last_new_window_pos_.y() + saveHeight >= geometry.height())) {
                last_new_window_pos_.setX(0);
                last_new_window_pos_.setY(0);
            }
            return last_new_window_pos_;
        }
    
    展开全文
  • Qt窗口居中显示

    千次阅读 2016-03-18 14:44:00
    Qt下,程序运行后窗口默认就是在屏幕中央显示的,但是后来发现在XP系统下没有居中显示,需要手动调整了。 和网上其他方案一样,大多数人会用类似这样的代码: move((desktop->width() - this->width())/2, ...
    在Qt下,程序运行后窗口默认就是在屏幕中央显示的,但是后来发现在XP系统下没有居中显示,需要手动调整了。

    和网上其他方案一样,大多数人会用类似这样的代码:

    move((desktop->width() - this->width())/2, (desktop->height() - this->height())/2);

    这段代码有两个问题:
    1.这个desktop的宽高是包含了任务栏的宽高,会导致在计算窗口位置时不会那么精确,比如窗口的Top和Bottom值可能会差很多;
    2.没有考虑任务栏在左侧、上方、右侧的情况。

    改进后的代码如下:

    move((qApp->desktop()->availableGeometry().width() - width()) / 2 + qApp->desktop()->availableGeometry().x(),
                   (qApp->desktop()->availableGeometry().height() - height()) / 2 + qApp->desktop()->availableGeometry().y());

    availableGeometry是返回的不包含任务栏的矩形区域,这样就能保证居中位置更精确,

    然后加上availableGeometry的XY坐标,这样就保证程序在那些调整了任务栏位置的的桌面上也能出现在正确的位置,而不是和任务栏重叠。


    原文地址:http://www.lxway.com/146241584.htm

    展开全文
  • QT窗口居中显示

    2012-08-02 17:54:19
    看到网上很多文章,窗口居中,无非都是move至窗口的中心目标; 有两种方式, 一种在构造函数中直接计算中心坐标; 另一种是在窗口show后再move至相应坐标.    1. 在构造函数中添加 /** *构建函数中move至中心...

        看到网上很多文章,窗口居中,无非都是move至窗口的中心目标; 有两种方式, 一种在构造函数中直接计算中心坐标; 另一种是在窗口show后再move至相应坐标.

      

        1. 在构造函数中添加

     /** 
       *构建函数中move至中心坐标时, 必须应用setFixedSize(500,500); 否则达不到期望居中显示的目标 
       */ 
    Dialog:Dialog(QObject *parent=0):QDialog(parent) { 
    	... 
    	this->setFixedSize(500,500); //这句必须添加 
    	this->setWindowTitle(tr("StyleSheet")); 
    	
    	QDesktopWidget *desk=QApplication::desktop(); 
    	int wd=desk->width(); 
    	int ht=desk->height(); 
    	this->move((wd-width())/2,(ht-height())/2); 
    } 

     

      2. main函数中添加

     

      

    /** 
       *方式一: 先显示后移动会产生窗口闪烁,有点不太好
       */ 
    int main(int argc,char **argv) { 
       QApplication app(argc,argv); 
       Dialog dialog; 
       dialog.show(); 
      
       QDesktopWidget *desk=QApplication::desktop(); 
       int wd=desk->width(); 
       int ht=desk->height(); 
       dialog.move((wd-dialog.width())/2,(ht-dialog.height())/2); 
       
       return app.exec();
    } 

     

     

    /**
     *方式二: 在移动和显示窗口前重新设置窗口的大小,这样就能达到期望的效果且不会闪烁
     */
    int main(int argc,char **argv)
    {
        QApplication app(argc,argv);
    
        Dialog dialog;
        dialog.resize(500,500); //重新设置大小 
    
       QDesktopWidget *desk=QApplication::desktop();
        int wd=desk->width();
        int ht=desk->height();
        dialog.move((wd-dialog.width())/2,(ht-dialog.height())/2);
    	
       dialog.show();
    }

      

     

     

     

    展开全文
  • Qt窗口居中显示

    2020-08-25 16:29:15
    Qt窗口居中显示概述:代码示例:over:文末一句话: 概述: 无 代码示例: #include <QDesktopWidget> QDesktopWidget *desktop = QApplication::desktop(); QWidget w; w.resize(800,800); w.move(...
  • Qt窗口屏幕居中显示

    2017-03-23 14:24:39
    窗口的屏幕居中显示问题,... Qt中可以采用两种方法达到窗口的屏幕居中显示: 方法一: 显示前先计算出窗口显示位子,并移到对应位子后再显示窗口 int main(int argc, char *argv[]) {  QTextCodec::setCode
  • Qt窗口居中显示

    2018-08-31 10:40:00
    w.move((a.desktop()-&gt;width() - w.width())/2, (a.desktop()-&gt;height() - w.height())/2);   上述方法可以置中,但是是在排除任务栏之外的区域置中。...【Qt窗口居中显示  ...
  • Qt 设置窗口居中显示

    2019-10-20 11:28:36
    在调用show()函数后调用move()函数,将窗口移动到屏幕中央。 #include <QDesktopWidget> #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); ...
  • qt 窗口默认居中

    千次阅读 2013-01-06 16:50:57
    添加头文件: #include   int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w;... w.move ((QApplication::desktop()->width() - w.width())/2,(QApplica
  • 设置窗口居中显示方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码:#include //.......QDesktopWidget* desktop = QApplication::desktop(); // =qApp->desktop();也可以move((desktop->width() -...
  • Qt编程 窗口居中显示

    2011-01-09 15:26:00
    Qt编程技巧 窗体居中显示view plaincopy to clipboardprint?this->resize(150,150); //窗体大小 //窗体居中 QDesktopWidget* desktop = QApplication::desktop(); int width = desktop->width(); int height =...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 194
精华内容 77
关键字:

qt窗口居中