问题及解决方案
当两个不同分辨率不同的设备运行同一个由Qt开发的程序时,会出现控件大小不一致甚至无法正常显示等问题。解决这个问题的方法是在主函数(程序入口)最前面添加一行代码:
QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
比如,
if __name__ == '__main__':
QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
app = QApplication(sys.argv)
win = myWin()
win.show()
sys.exit(app.exec())
假如你是用的C++语言的话,添加如下代码
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
实测
我在MacBook Pro上做的UI,在一台分辨率不同的Windows设备上测试。
添加前,是这样的
两个按钮文字几乎看不见了
添加后,是这样的