Eppley 2019-06-18
最近遇到一个现象,将做好的软件放在更高分辨率的电脑上运行,会导致字体显示不完全,出现被控件遮挡的情况。具体原因可以上网查询,在这里将记录下解决方法。
这里记录两种方法,如果使用的Qt版本在5.6.0之后,可以支持High_DPI,应用设置该属性即可;如果不支持,可以为应用设置自适应字体。
if __name__ == "__main__": v_compare = QVersionNumber(5,6,0) v_current,_ = QVersionNumber.fromString(QT_VERSION_STR) #获取当前Qt版本 if QVersionNumber.compare(v_current,v_compare) >=0 : QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) #Qt从5.6.0开始,支持High-DPI app = QApplication(sys.argv) # else: app = QApplication(sys.argv) font = QFont("宋体") pointsize = font.pointSize() font.setPixelSize(pointsize*90/72) app.setFont(font) mymainwin = Mymainwindow() mymainwin.show() sys.exit(app.exec())
注意:QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) 是在创建QApplication项目之前。