博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5 控件学习(一个一个学习之QFontDialog)
阅读量:4562 次
发布时间:2019-06-08

本文共 12656 字,大约阅读时间需要 42 分钟。

QFontDialog的继承图:

QFontDialog的描述:

 

QFontDialog的继承:

它是继承自它的父类  QDialog 的 

QFontDialog的功能作用:

QFontDialog的功能作用之构造函数:

第一种构造方法:

from PyQt5.Qt import * #刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400,400)        self.set_ui()    def set_ui(self):        fontDialog = QFontDialog(self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()        def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0,300)        btn.clicked.connect(lambda :self.fontDialog.open())        if __name__ == '__main__':    app =QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

第二种构造方法:

在构造的时候就传入个font 对象 ,

from PyQt5.Qt import * #刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400,400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)                fontDialog = QFontDialog(font,self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()        def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0,300)        btn.clicked.connect(lambda :self.fontDialog.open())        if __name__ == '__main__':    app =QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

QFontDialog的功能作用之打开对话框:

from PyQt5.Qt import * #刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400,400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font,self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()        def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0,300)        def font_open_slot():            print("字体已经被选择好了")        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot)) if __name__ == '__main__':    app =QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
open 里面可以放个槽函数

 

 也可以借助exec() 来获取用户点击的是哪个字体:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()    def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        def font_open_slot():            print("字体已经被选择好了", self.fontDialog.selectedFont().family())        # btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))###########################################################        # 利用 exec() 返回值判断用户点击了哪个选项        print(self.fontDialog.exec())  #点关闭是0  点确认是 1        if self.fontDialog.exec():            print(self.fontDialog.selectedFont().family())###########################################################if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

 

 

QFontDialog的功能作用之当前字体:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        # fontDialog = QFontDialog(font, self)        fontDialog = QFontDialog(self)        self.fontDialog = fontDialog        self.test()        ############################设置当前字体###############################        fontDialog.setCurrentFont(font)        ############################设置当前字体###############################    def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        def font_open_slot():            print("字体已经被选择好了", self.fontDialog.selectedFont().family())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

 

 

QFontDialog的功能作用之最终选中字体:

from PyQt5.Qt import * #刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400,400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font,self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()        def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0,300)        def font_open_slot():            print("字体已经被选择好了",self.fontDialog.selectedFont())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app =QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code
from PyQt5.Qt import * #刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400,400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font,self)        self.fontDialog = fontDialog        self.test()        # fontDialog.show()        # fontDialog.open()        # fontDialog.exec()        def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0,300)        def font_open_slot():            print("字体已经被选择好了",self.fontDialog.selectedFont().family())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app =QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

 

 

 

QFontDialog的功能作用之选项控制:

 

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        fontDialog.setOption(QFontDialog.NoButtons)  #此时就没有下面的按钮了        self.test()        fontDialog.show()        return None    def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        return None        def font_open_slot():            print("字体已经被选择好了", self.fontDialog.selectedFont().family())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
设置QFontDialog.NoButtons选项

它的应用场景是:

这里要借助一个信号 currentFontChanged信号 ,

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        fontDialog.setOption(QFontDialog.NoButtons)  #此时就没有下面的按钮了        self.test()        fontDialog.show()        label = QLabel(self)        label.move(200,200)        label.setText("我爱中国")        def fontDialog_currentFontChanged_slot(font):            label.adjustSize()            label.setFont(font)        fontDialog.currentFontChanged.connect(fontDialog_currentFontChanged_slot)        return None    def test(self):        return None        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        return None        def font_open_slot():            print("字体已经被选择好了", self.fontDialog.selectedFont().family())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
QFontDialog.NoButtons选项的应用场景

 

也可以设置多个选项,

如下:显示等宽字体:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        # fontDialog.setOption(QFontDialog.NoButtons)  #此时就没有下面的按钮了        fontDialog.setOptions(QFontDialog.NoButtons|QFontDialog.MonospacedFonts)  #显示等宽字体        self.test()        fontDialog.show()        label = QLabel(self)        label.move(200,200)        label.setText("我爱中国")        def fontDialog_currentFontChanged_slot(font):            label.adjustSize()            label.setFont(font)        fontDialog.currentFontChanged.connect(fontDialog_currentFontChanged_slot)        return None    def test(self):        return None        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        return None        def font_open_slot():            print("字体已经被选择好了", self.fontDialog.selectedFont().family())        btn.clicked.connect(lambda :self.fontDialog.open(font_open_slot))if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

 

QFontDialog的功能作用之静态方法:

 

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        self.test()        label = QLabel(self)        self.label = label        label.move(200,200)        label.setText("我爱中国")    def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        def btn_clicked_slot():            ret = QFontDialog.getFont(self)   # 它会自动的展示 字体对话框                          #这里只是给他设置个父控件 返回值的true false 指的是是否选中了确认            # print(ret)            if ret[1]:                self.label.setFont(ret[0])                self.label.adjustSize()        btn.clicked.connect(btn_clicked_slot)if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
静态方法QFontDialog.getFont

更多参数的静态方法 getFont() 

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入import sysclass Window(QWidget):    def __init__(self):        super().__init__()        self.setWindowTitle("QFontDialog的学习")        self.resize(400, 400)        self.set_ui()    def set_ui(self):        font = QFont()        self.font = font        font.setFamily("宋体")        font.setPointSize(14)        fontDialog = QFontDialog(font, self)        self.fontDialog = fontDialog        self.test()        label = QLabel(self)        self.label = label        label.move(200,200)        label.setText("我爱中国")    def test(self):        btn = QPushButton(self)        btn.setText("按钮")        btn.move(0, 300)        def btn_clicked_slot():            # ret = QFontDialog.getFont(self)            ret = QFontDialog.getFont(self.font,self,"选择一个好看的字体") #相对上一个更多一些选项            # print(ret)            if ret[1]:                self.label.setFont(ret[0])                self.label.adjustSize()        btn.clicked.connect(btn_clicked_slot)if __name__ == '__main__':    app = QApplication(sys.argv)    window = Window()    window.show()    sys.exit(app.exec_())
View Code

 

注:这时的它们不是实时显示字体的效果的 。

 

QFontDialog的信号:

 

 

 

总结:

下面看下一个对话框:颜色对话框 QColorDialog: 

 

转载于:https://www.cnblogs.com/zach0812/p/11392843.html

你可能感兴趣的文章
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>
java线程系列---java5中的线程池
查看>>
SQL表连接
查看>>
新秀系列C/C++经典问题(四)
查看>>
memset函数具体说明
查看>>
经常使用的android弹出对话框
查看>>
确保新站自身站点设计的合理性的六大注意点
查看>>
promise
查看>>
Go 网络编程笔记
查看>>
[]Java面试题123道
查看>>
中间件与auth认证的那点儿所以然
查看>>
Scala
查看>>
Android 中LinearLayout控件属性
查看>>
面向对象之多态性
查看>>
树状数组
查看>>
【2019.8.14 慈溪模拟赛 T1】我不是!我没有!别瞎说啊!(notme)(BFS+DP)
查看>>
多任务--进程 及 进程间通信
查看>>