PyQt5 实现字体大小自适应分辨率的方法

yipeiwu_com6年前Python基础

最近遇到一个现象,将做好的软件放在更高分辨率的电脑上运行,会导致字体显示不完全,出现被控件遮挡的情况。具体原因可以上网查询,在这里将记录下解决方法。

这里记录两种方法,如果使用的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项目之前。

以上这篇PyQt5 实现字体大小自适应分辨率的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅析python中SQLAlchemy排序的一个坑

前言 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行S...

urllib2自定义opener详解

urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能。要支持这些功能,必须使用build_opener()函数创建自定义Opener对象。 复制代码 代...

python面向对象实现名片管理系统文件版

python面向对象实现名片管理系统文件版

本文实例为大家分享了python实现名片管理系统源代码,供大家参考,具体内容如下 import os def print_menu(): print("*"*50) print(...

详解【python】str与json类型转换

在写接口测试框架时。避免不了数据类型的转换,比如强制转换string类型,比如转json类型 str转json python字符串转json对象,需要使用json模块的loads函数...

python获取中文字符串长度的方法

如下所示: print len('哈哈'.decode('utf-8')) #unicode格式 print len('哈哈') #utf-8格式 以上这篇python获取中文字符...