用QtCreate创建的界面应用程序,在ui文件中拖入所需的控件,并进行布局,布局完成后在ui文件的工具->form Editor->预览可查看当前界面。问题便是:通过预览查看界面布局没有问题,但运行程序时界面与预览的界面存在偏差。
我做的例子中预览界面如下:
程序运行时界面如下:
解决方法如下:
- 先尝试在main函数中添加如下代码:
if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
如下所示:
#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风格似乎也可以。