Qt界面设计器中的界面预览与程序运行时界面不一样


用QtCreate创建的界面应用程序,在ui文件中拖入所需的控件,并进行布局,布局完成后在ui文件的工具->form Editor->预览可查看当前界面。问题便是:通过预览查看界面布局没有问题,但运行程序时界面与预览的界面存在偏差。
在这里插入图片描述
我做的例子中预览界面如下:
在这里插入图片描述
程序运行时界面如下:
在这里插入图片描述
解决方法如下:

  1. 先尝试在main函数中添加如下代码:
1
2
 if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
        QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{<!-- -->
    if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
        QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

这是由于QT对于高分辨率的屏幕存在像素上的偏差,若加上这句后运行程序依旧存在界面上显示的偏差。
2.尝试在第一种方法的基础上做风格预览:在工具->form Editor->preview in对应的界面风格中选择运行程序时所对应的风格进行预览(如下图所示),根据预览的情况在布局中做出细微的调整,前提是需要弄明白运行程序时用的哪种风格,可以三种风格都预览一下,根据界面的展现效果确定程序运行时用的哪种风格。我的window系统下对应的是Window风格,所以我在window风格下预览界面,然后在ui文件中做相应的调整。但是windowvista风格似乎也可以。
在这里插入图片描述