美文网首页
PyQt5 QFontDialog(字体选择对话框) 学习

PyQt5 QFontDialog(字体选择对话框) 学习

作者: _Mirage | 来源:发表于2020-04-04 07:09 被阅读0次

    QFontDialog is a dialog widget for selecting a font.
    这里面要注意的就是组件的setSizePolicy方法,作用是控制组件在布局容器中的大小变化。

    代码:

    # coding='utf-8'
    
    from PyQt5.QtWidgets import QWidget, QApplication,\
        QFontDialog, QLabel, QVBoxLayout, QPushButton,\
        QSizePolicy
    import sys
    
    
    class Gui(QWidget):
        def __init__(self):
            super().__init__()
            self.start()
    
        def start(self):
            # 创建垂直方向控件布局器\
            # 可以使里面放置的控件呈现水平方向的整齐布局
            vbox = QVBoxLayout()
            # 创建内容是Dialog,父组件是QWidget(主窗体)的按钮
            button1 = QPushButton('Dialog', self)
            button1.move(20, 20)
            # button的setSizePolicy构造函数:
            """
            setSizePolicy(self, QSizePolicy)
            setSizePolicy(self, QSizePolicy.Policy,\
                        QSizePolicy.Policy)
            """
            # setSizePolicy: 设置控件在布局(layout)里面的大小变化
            button1.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
            button1.clicked.connect(self.show_dialog)
            # 把按钮加入vbox的垂直布局中
            vbox.addWidget(button1)
    
            # 创建内容是Knowledge only matters,父组件是QWidget的标签
            self.label = QLabel('Knowledge only matters', self)
            self.label.move(130, 20)
    
            vbox.addWidget(self.label)
            # 将QWidget的布局设置成前面创建的vbox,必须要有这句vbox才能生效
            self.setLayout(vbox)
    
            self.setGeometry(300, 300, 250, 180)
            self.setWindowTitle('字体选择对话框')
            self.show()
    
        def show_dialog(self):
            font, flag = QFontDialog.getFont()
            if flag:
                self.label.setFont(font)
    
    
    app = QApplication(sys.argv)
    gui = Gui()
    sys.exit(app.exec_())
    
    
    运行结果: image.png
    image.png
    image.png

    相关文章

      网友评论

          本文标题:PyQt5 QFontDialog(字体选择对话框) 学习

          本文链接:https://www.haomeiwen.com/subject/dugrphtx.html