【PyQt5】Qt Designer设计GUI界面之QFont设置字体

这个博客展示了如何使用Python的PyQt5库创建一个窗口应用程序,并详细说明了如何设置字体的样式,包括字体类型、加粗、斜体、删除线和下划线,以及调整字体大小。通过实例代码,演示了如何实现这些功能并展示文本内容。

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

 1 import sys
 2 from PyQt5.QtWidgets import QApplication, QWidget,QLabel
 3 from PyQt5.QtGui import QFont
 4 from PyQt5 import QtCore
 5 
 6 class MainWindow(QWidget):
 7     def __init__(self):
 8         super(Demo, self).__init__()
 9         self.label = QLabel('hello world',self)
10         #self.label.setFont(QFont("华文琥珀",20,QFont.Bold))  #设置字体、样式和大小
11         #QFont.Bold  加粗
12 
13         #self.label.setStyleSheet("color:white") #文本颜色(前景色)
14         
15         #self.label.setStyleSheet("background-color: #000000;color: #ffffff") #设置背景色和前景色
16         #self.label.setGeometry(QtCore.QRect(20, 60, 291, 61))  #设置控件的位置和大小
17
18
19 
20         #分开设置
21         font = QFont()   #实例化字体对象
22         font.setFamily('微软雅黑')  #字体
23         font.setBold(True)  #加粗
24         font.setItalic(True)    #斜体
25         font.setStrikeOut(True)  #删除线
26         font.setUnderline(True)   #下划线
27         font.setPointSize(23)   #字体大小
28         self.label.setFont(font)
29
30 
31 #主程序
33 if __name__ == '__main__':
34     app = QApplication(sys.argv)
35     mainwindow = MainWindow()
36     mainwindow.show()
37     sys.exit(app.exec_())

### Qt Designer 中实现字体自适应的方法 在 Qt Designer 中,虽然无法直接设置字体的动态缩放功能,但可以通过结合 **布局管理器** 和 **样式表(QSS)** 来间接实现字体随窗口大小调整的效果。以下是具体方法: #### 使用 Layout 布局容器 为了使界面中的控件能够响应窗口尺寸的变化,应将所有控件放置到合适的布局中[^1]。Qt 提供了多种布局方式,包括 Vertical 垂直布局、Horizontal 水平布局、Grid 网格布局以及 Form 表单布局[^2]。这些布局可以确保控件之间的相对位置保持一致。 #### 动态调整字体大小 尽管 Qt 的内置机制不支持直接通过布局来改变字体大小,但可以通过以下两种技术手段实现字体的动态适配: 1. **基于比例计算字体大小** 可以编写逻辑代码,在运行时根据当前窗口的实际宽度或高度重新设定字体大小。例如: ```python from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget from PyQt5.QtGui import QFont class FontAdaptiveWidget(QWidget): def __init__(self): super().__init__() self.label = QLabel("测试文字", self) layout = QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) def resizeEvent(self, event): font_size = int(event.size().width() / 30) # 根据窗口宽度动态调整字体大小 font = QFont("Arial", font_size) self.label.setFont(font) app = QApplication([]) window = FontAdaptiveWidget() window.resize(800, 600) window.show() app.exec_() ``` 上述代码展示了如何利用 `resizeEvent` 函数监听窗口大小变化,并按一定比例更新标签的文字字号[^3]。 2. **使用 QSS 设置最小/最大字体约束** 如果希望简化开发流程,则可以在设计阶段定义样式的最低和最高限制条件。比如: ```css QLabel { min-font-size: 10px; max-font-size: 24px; } ``` 不过需要注意的是,这种方式仅限于静态范围控制,仍需配合脚本完成更复杂的场景需求。 综上所述,要达成真正的字体自适应效果,通常需要综合运用 UI 设计工具所提供的基础组件特性与编程技巧相结合的方式来进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值