python字体设置对话框_Qt5 Python GUI 编程指南

字体对话框的使用

本节,我们将学习使用字体对话框为选中的文本设置不同的字体和样式。

在本应用中,我们将使用一个Text Edit组件和一个Push Button 组件。当单击这个按钮时,将打开这个字体对话框架。从对话框中选择的字体和样式将被应用在Text Edit组件中的文本上。

本节,我们将使用QFontDialog类显示一个对话框组件,用于选择字体。

如何去做...

让我们基于Dialog without Buttons模板创建一个应用程序,步骤如下:

1、拖动一个Push Button和一个Text Edit组件放在窗体上。

2、将Push Button组件的文本属性设置为Choose Font。

3、将Push Button组件的objectName属性设置为pushButtonFont。

4、将应用保存为demoFontDialog.ui。

5、执行以上步骤后,应用界面的显示如下图所示:

用户界面是使用Qt Designer创建并保存为.ui格式的XML文件。使用pyuic5命令将这个XML文件转换为Python代码。生成的Python脚本文件名为demoFontDialog.py,可以参考本书源代码。这个demoFontDialog.py脚本将用于另一个Python文件的头文件导入,并调用显示用户界面。

6、创建另一个名为callFontDialog.pyw的Python文件,并导入demoFontDialog.py代码:

import sys

from PyQt5.QtWidgets import QDialog, QApplication, QFontDialog

from demoFontDialog import *

class MyForm(QDialog):

def __init__(self):

super().__init__()

self.ui = Ui_Dialog()

self.ui.setupUi(self)

self.ui.pushPuttonFont.clicked.connect(self.changefont)

self.show()

def changefont(self):

font, ok = QFontDialog.getFont()

if ok:

self.ui.textEdit.setFont(font)

if __name__=="__main__":

app = QApplication(sys.argv)

w = MyForm()

w.show()

sys.exit(app.exec_())

它是如何工作的...

在callFontDialog.pyw文件中,你可以看到按钮的click()事件与changefont()方法关联;也就是说,当用户单击了Choose Font按钮时,就用调用changefont()方法。changefont()方法又调用QFontDialog类中的getFont()方法,这个方法会打开一个对话框并显示不同的字体,字体样式,大小和效果。当选择了一个字体,字体样式,大小和效果后,文字效果就会在Sample框中显示出来。当选择了一个期望的字体、字体样式、大小和效果后,当用户单击OK按钮,当前选择的字体会赋值给font变量。因此,TextEdit类中的setFont()方法就会将选择的字体应用到Text Edit组件中显示的文本上。

运行应用,你看到了一个按钮,即Change Font 组件,和一个Text Edit组件,如下图所示:

为了看到从字体对话框中选择字体后的影响,你需要在Text Edit中输入一些文本,如下图所示:

当选择了Change Font按钮,将打开字体对话框,如下图所示。你就能在对话框的最左侧框中显示的不同的字体。中间的框显示了不同的字体样式,它可以使用你文本加粗、倾斜、加粗和倾斜和正常。最右边的框中显示了不同的大小。在对话框底部,你可以看到不同的选择框,可以使用你的文本显示下划线、删除线等样式。在任可框中选择相应的字体和样式都会在Sample框中预览相应的文字校果。选择好对应的字体、样式和大小后,单击OK按钮关闭对话框:

选择好字体样式后将在Text Edit组件的文本上看到相应的效果,如下图所示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值