pyqt5 qfont 字体_PyQt5 实现字体大小自适应分辨率的方法

博客记录了将做好的软件放在更高分辨率电脑上运行时,字体显示不完全、被控件遮挡问题的解决方法。若Qt版本在5.6.0之后,可设置High_DPI属性;若不支持,则为应用设置自适应字体,并给出了相应代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这里记录两种方法,如果使用的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 实现字体大小自适应分辨率的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

实现PyQt5生成的exe文件自适应屏幕大小,可以使用PyInstaller将PyQt5应用程序打包成一个独立的可执行文件,并在程序中使用QDesktopWidget类和QScreen类来获取屏幕的大小,从而动态调整窗口的大小和位置。 具体步骤如下: 1. 在PyQt5应用程序中,使用QDesktopWidget类和QScreen类来获取屏幕的大小,可以使用screenGeometry()方法获取屏幕矩形的大小,或者使用availableGeometry()方法获取可用矩形的大小。 2. 在PyInstaller中,可以使用--noconsole选项将控制台输出关闭,使用--onefile选项将所有的依赖项打包成一个独立的可执行文件。 3. 在PyQt5应用程序中,使用resize()方法和move()方法设置窗口的大小和位置,可以根据屏幕的大小和窗口的大小来计算出窗口的新位置和大小。 下面是一个简单的例子: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QDesktopWidget from PyQt5.QtGui import QFont from PyQt5.QtCore import Qt import sys class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('PyQt5生成的exe自适应屏幕大小') self.label = QLabel('Hello PyQt5!', self) font = QFont() font.setPointSize(20) self.label.setFont(font) self.label.setAlignment(Qt.AlignCenter) # 获取屏幕大小 desktop = QDesktopWidget() screen_rect = desktop.screenGeometry() screen_width = screen_rect.width() screen_height = screen_rect.height() # 计算窗口大小和位置 window_width = int(screen_width / 2) window_height = int(screen_height / 2) window_x = int((screen_width - window_width) / 2) window_y = int((screen_height - window_height) / 2) self.resize(window_width, window_height) self.move(window_x, window_y) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) ``` 在上面的例子中,我们创建了一个MyWindow类,继承自QMainWindow类,并在窗口中添加了一个QLabel控件。在MyWindow类的构造函数中,我们使用QDesktopWidget类和QScreen类来获取屏幕的大小,并计算出窗口的大小和位置。然后,我们使用resize()方法和move()方法设置窗口的大小和位置,从而实现自适应屏幕大小的效果。 最后,我们可以使用PyInstaller将上面的代码打包成一个独立的可执行文件,使用--noconsole选项关闭控制台输出,使用--onefile选项将所有的依赖项打包成一个文件。例如: ```bash pyinstaller --noconsole --onefile mywindow.py ``` 这样就可以生成一个名为mywindow.exe的可执行文件,可以在任何支持Python和PyQt5的环境中运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值