用QtCreate创建的界面应用程序,在ui文件中拖入所需的控件,并进行布局,布局完成后在ui文件的工具->form Editor->预览可查看当前界面。问题便是:通过预览查看界面布局没有问题,但运行程序时界面与预览的界面存在偏差。
我做的例子中预览界面如下:
程序运行时界面如下:
解决方法如下:
- 先尝试在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风格似乎也可以。