在笔记本上1366 x 768分辨下用qt designer做好的UI程序,放到2880x1800的物理机上运行,明显发现字体变大了!
控件似乎没有变大,于是label button上面的文字就超出控件边界了。
搜索了N久,尝试了各种办法,总结如下:
用不用布局都可以!
修改 main.cpp:
第一步:
加入
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
具体作用就不清楚了,貌似是在不使用布局的情况下让窗口和控件也能在高分辨率下放大(不太确定)。
第二步:
设置全局字体:
QFont f("SimSun");
f.setPixelSize(12);
a.setFont(f);
这里是用的pixel size. (qt designer拖出来的控件经由vs编译出来的.h文件里面可以看到各个控件用的都是point size或者是没有设置font).
完整代码如下:
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
QApplication a(argc, argv); // 这句代码是vs + qt 自动生成的
QFont f("SimSun");
f.setPixelSize(12);
a.setFont(f);
myproject w; // 这句代码是vs + qt 自动生成的
w.show(); // 这句代码是vs + qt 自动生成的
return a.exec(); // 这句代码是vs + qt 自动生成的
}