PyQt5_QFontDialog_字体选择对话框

#
# QFontDialog
#           字体对话框

from PyQt5.Qt import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('QFontDialog')
        self.resize(500,500)
        self.iniUI()
        
    def iniUI(self):
        btn = QPushButton(self)
        self.btn = btn
        btn.setText('按钮')
        btn.resize(self.width() / 3, self.height() / 10)
        btn.move(self.width() / 3, self.height() / 2)
        label = QLabel('豫章故郡,洪都新府',self)
        self.label = label

        ##############################################创建字体对话框
        #
        # 现在需求:
        #           在弹出字体对话框之前,设置其字体初始值,包括字体样式,大小
        #
        # 解决方法:
        #           给QFontDialog传递一个QFont()对象
        font = QFont()
        font.setFamily('华文新魏')
        font.setPointSize(30)
        fd = QFontDialog(font,self)
        self.fd = fd
        #############################创建字体对话框

    ##############################################返回 字体对话框的设置信息
    #
    # 现在需求:
    #           当字体对话框设置好 字体的样式 大小 点击确认键之后,如何获取刚刚设置的字体样式
    #
    # 解决方法:
    #           返回 字体对话框的设置信息
    def fdGetInfor(self):
        def cao():
            print('字体设置完毕,字体样式',self.fd.selectedFont().family(),\
                               '字体大小',self.fd.selectedFont().pointSize())
        self.btn.clicked.connect(lambda:self.fd.open(cao))
    #############################返回 字体对话框的设置信息
        
        
    ##############################################设置当前字体对话框 的显示参数
    #
    # 现在需求:
    #           设置字体对话框 的确认取消按钮是否显示
    #                       字体删选之后显示,如显示可缩放字体,显示等宽字体,比例字体
    # 解决方法:
    #           fd.setOption(QFontDialog.NoButtons)
    #           fd.setOption(QFontDialog.ScalableFonts)
    #           fd.setOption(QFontDialog.MonospacedFonts)
    #           fd.setOption(QFontDialog.ProportionalFonts)
    #           fd.setOptions(QFontDialog.ProportionalFonts | QFontDialog.NoButtons)
    def fdFontChanged(self):
        self.fd.show()
        self.fd.setOptions(QFontDialog.ProportionalFonts | QFontDialog.NoButtons)

        def noButton(font):
            self.label.setFont(font)
            self.label.adjustSize()
        self.fd.currentFontChanged.connect(noButton)
    #############################设置当前字体对话框 的显示参数

    ##############################################快速弹出字体选择对话框
    #
    # 现在需求:
    #           快速弹出字体选择对话框
    #
    # 解决方法:
    #           使用静态方法
    def fdGetFont(self):

        def font_sel():                         #调用静态方法QFontDialog.getFont(self) 可以快速弹出字体选择对话框
            result = QFontDialog.getFont(self)  #result是包含俩个元素的元组,第一个元组是QFont对象,第二个是布尔类型
            if result[1]:                       #只有字体对话框完成设置并点击确认键关闭后,result[1]为True,
                self.label.setFont(result[0])   #   字体对话框点击取消键关闭后,不保存之前任何设置,result[1]为False
                self.label.adjustSize()
        self.btn.clicked.connect(font_sel)
        self.fd.show()                      #关于这个fdGetFont方法,实际运行时还有一个问题,第一次出不来,第二次设置才能生效
    #############################快速弹出字体选择对话框



if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    
    
    win = MyWindow()
    # win.fdGetInfor()
    # win.fdFontChanged()
    win.fdGetFont()
    win.show()
    sys.exit(app.exec_())

小白学习笔记,若感兴趣留个爪 haha ^. ^

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值