8.2 QFontDialog字体选择对话框
一、QFontDialog字体选择对话框
1.基本概念
- QFontDialog的学习过程中重点要注意构造方法、选项控制和静态方法的使用。
2.代码
点击查看代码
from PyQt5.Qt import *
import sys
class Window(QWidget) :
def __init__(self) :
super().__init__()
self.setWindowTitle("QFontDialog字体选择对话框 - PyQt5中文网")
self.resize(600, 500)
self.func_list()
def func_list(self) :
self.func()
def func(self) :
# 1.构造方法
# 第一种构造方法
font = QFont()
font.setFamily('打不倒的小怪兽') #设置默认字体
font.setPointSize(22)#设置默认大小
#qd = QFontDialog(font, self)
# 第二种构造方法
# 设置当前字体 == 设置默认字体
qd = QFontDialog(self) #直接创建
qd.setCurrentFont(font) # 在没有点击OK之前,当前字体可以是默认字体,也可以是选择的字体。点击之后就变为最终选择字体
#qd.show() #调用上面创建的方法
## 3案例:点击按钮,进行选择字体
btn = QPushButton(self)
btn.move(100, 100)
btn.setText('选择字体')
btn.clicked.connect(lambda : qd.open())
# 槽函数:打印最终选择字体
def font_sel() :
print(qd.selectedFont().family())
pass
# 信号连接槽函数
btn.clicked.connect(lambda : qd.open(font_sel))
'''
# 4可用信号
# qd.currentFontChanged() # 字体发生改变
# qd.fontSelected() # 最终选择的字体
# 选项控制
# qd.setOption() # 设置单个选项
# qd.setOptions() # 设置多个选项
# qd.testOption() # 测试选项是否生效
# qd.options() # 获得当前选项
# 枚举值
# QFontDialog.NoButtons # 不现实OK和取消按钮
# QFontDialog.DontUseNativeDialog # 在Mac上使用Qt的标准字体对话框
# QFontDialog.ScalableFonts # 显示可缩放字体
# QFontDialog.NonScalableFonts # 显示不可缩放字体
# QFontDialog.MonospacedFonts # 显示等宽字体
# QFontDialog.ProportionalFonts # 显示比例字体
'''
#4测试
#qd.setOption(QFontDialog.NoButtons,on=False)
#qd.setOptions(QFontDialog.NoButtons|QFontDialog.ScalableFonts)
## 5案列:信号控制字体变化
label = QLabel(self)
label.move(150, 150)
label.setText('python')
def font_con(font):
label.setFont(font)
label.adjustSize() #调整字体
qd.currentFontChanged.connect(font_con)
# # 5-1静态方法
label2 = QLabel(self)
label2.move(300, 150)
label2.setText('PyQt5中文网')
def font_con2():
# res = QFontDialog.getFont(self) # 返回一个对象和一个布尔结果元祖
res = QFontDialog.getFont(font, self, '对话框标题') # 返回一个对象和一个布尔结果元祖(设置子标题)
if res[1]:#点击ok
label2.setFont(res[0]) #设置字体
label2.adjustSize()
btn.clicked.connect(font_con2)
if __name__ == '__main__' :
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
分类:
可视化界面 / PYQT5
标签:
python可视化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具