如何修改PyQt5表单布局中标签角色的字体为Courier?
解决PyQt5表单布局标签字体问题
你遇到的核心问题是:调用addRow传入字符串参数时,PyQt会自动生成使用默认字体的QLabel,这个自动创建的标签不会继承输入框的字体设置。下面提供两个简便的解决办法:
方法一:手动创建标签并设置字体
显式创建QLabel控件,配置好字体后再添加到表单布局,能精准控制每个标签的样式:
from PyQt5 import QtWidgets, QtGui # 保留原有输入框代码,修改addRow部分 self.vertical.addLayout(self.form) self.user_name = QtWidgets.QLineEdit(self) self.user_name.setFont(QtGui.QFont('Courier', 15)) self.password = QtWidgets.QLineEdit(self) self.password.setFont(QtGui.QFont('Courier', 15)) # 手动创建标签并设置Courier字体 username_label = QtWidgets.QLabel('username', self) username_label.setFont(QtGui.QFont('Courier', 15)) password_label = QtWidgets.QLabel('password', self) password_label.setFont(QtGui.QFont('Courier', 15)) # 将标签和输入框配对添加到表单布局 self.form.addRow(username_label, self.user_name) self.form.addRow(password_label, self.password)
方法二:全局设置应用程序字体
如果希望整个窗口的所有文本都统一使用Courier字体,更省事的方式是给整个QApplication设置全局字体,这样所有控件(包括自动生成的标签)都会自动应用该字体:
import sys from PyQt5 import QtWidgets, QtGui if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) # 全局设置Courier字体,字号15 app.setFont(QtGui.QFont('Courier', 15)) # 初始化并显示你的主窗口 window = YourMainWindowClass() window.show() sys.exit(app.exec_())
使用这个方法后,你可以直接去掉给QLineEdit单独设置字体的代码,全局字体已经覆盖所有控件的默认样式。
内容的提问来源于stack exchange,提问作者dz1981-bit
相关产品推荐
相关产品推荐

