跳至正文
View Categories

< 1 min read

    主要内容 #

  1. QFontDialog介绍
  2. QFileDialog介绍

完成效果 #

完成本节课程,能学会在窗口应用程序上增加选择字体对话框和选择目录或者文件的对话框,用于选择打开或者保存文件。
效果如下:

收获 #

学习完本节内容,我们会知道如何创建QFontDialog、QFileDialog对话框,以及了解它们各自的功能。

1.QFontDialog介绍 #

QFontDialog能做字体的选择。以下是QFontDialog的简单示例:

# 注意,以下包都要导入,后面内容会用到
from PyQt5.QtWidgets import QWidget, QLabel, QFontDialog, QFileDialog, QApplication
from PyQt5.QtGui import QPixmap
import sys

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):  
        self.lbl = QLabel('Knowledge only matters', self)  # 创建一个标签控件,并显示文本
        self.lbl.move(30, 20)  # 移动标签的位置
        # QFontDialog.getFont()弹出一个字体选择对话框,可以自行选择字体。
        # 返回值font是用户选择的字体,ok是ok键的点击与否(True 或 False)
        font, ok = QFontDialog.getFont()
        # 如果ok键点击了,则调用setFont()方法让标签字体变为用户选择字体
        if ok:
            self.lbl.setFont(font)

        # 设置窗口的位置和大小,前两个参数表示离屏幕左上角的坐标,后两个参数表示窗口的大小
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('QFontDialog')  # 设置窗口的标题
        self.show()  # 显示窗口
  

app = QApplication(sys.argv)    # 创建应用程序
ex = Example()  # 创建窗口对象
sys.exit(app.exec_())   # 设置关闭窗口后结束进程

拓展练习: 多运行几次上述程序,每次选择不同的字体,观察QLabel上文本的变化。

2.QFileDialog介绍 #

QFileDialog给用户提供文件或者文件夹选择的功能。能打开和保存文件。以下是QFileDialog打开或保存图片文件的简单示例:

    self.lb = QLabel(self)  # 创建一个标签控件,并显示文本
    self.lb.move(30, 20)  # 移动标签的位置
    # QFileDialog.getOpenFileName()创建文件对话框来选择文件,第一个参数用于指定父组件,
    # 第二个参数是QFileDialog对话框的标题,第三个参数是打开的目录路径
    # 返回值filename是用户选择的文件名(包含路径),filetype是文件的类型
    filename, filetype = QFileDialog.getOpenFileName(self, 'Open file', 'D:\\Python_Tips\\Dashima\\pics\\')
    self.lb.setPixmap(QPixmap(filename))  # 让标签控件显示用户选择的图片
    # QFileDialog.getSaveFileName()打开文件资源管理器,获得你需要保存的文件名和文件类型
    # 其三个参数的意义与getOpenFileName()一致
    filename, filetype = QFileDialog.getSaveFileName(self, '选择保存路径', 'D:\\Python_Tips\\Dashima\\pics\\')

将这部分代码,复制到第一节PyQt5代码框架中的initUI中即可。
拓展练习:再次运行上述程序,尝试选择该文件夹中的其他图片打开。

小结 #

  • 学习了如何创建QFontDialog对话框来选择字体。
  • 学习了如何创建QFileDialogt对话框来打开文件以及保存文件。
  • 习题 #

    1. 习题1:尝试通过QFontDialog对话框选择Arial字体,style为bold,size为14。
    2. 习题2:尝试通过QFileDialog打开你从网上下载的图片,并显示在QLabel上。