PyQt4字体对话框QFontDialog

Posted 月光诗人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt4字体对话框QFontDialog相关的知识,希望对你有一定的参考价值。

字体对话框时用来显示字体的对话框部件。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore 

class FontDialog(QtGui.QWidget):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self)
        hbox = QtGui.QHBoxLayout()
        self.setGeometry(300, 300, 250, 110)
        self.setWindowTitle(\'Font Dialog\')
        button = QtGui.QPushButton(\'Dialog\', self)
        button.setFocusPolicy(QtCore.Qt.NoFocus)
        button.move(20, 20)
        hbox.addWidget(button)
        self.connect(button, QtCore.SIGNAL(\'clicked()\'), self.showDialog)
        self.label = QtGui.QLabel(\'moonlight poet, work hard to gain a better life\', self)
        self.label.move(130, 20)
        hbox.addWidget(self.label, 1)
        self.setLayout(hbox)
        
    def showDialog(self):
        font, ok = QtGui.QFontDialog.getFont()
        if ok:
            self.label.setFont(font)
    
app = QtGui.QApplication(sys.argv)
fd = FontDialog()
fd.show()
sys.exit(app.exec_())

效果:

在本示例中,我们在主界面中显示了一个按钮和一个标签。单击按钮后,用户可在弹出字体对话框中选择字体来修改标签中的字体样式。

        hbox.addWidget(button)

该语句将label标签加入到hbox布局中,并通过第二个参数1设置label的大小时可变的。该设置是必须的,因为在用户选择不同的字体时,label标签中的字体可能会变大,若不进行该设置,标签中的内容就可能不会被全部显示。

        font, ok = QtGui.QFontDialog.getFont()

该语句将弹出字体对话框。

        if ok:
            self.label.setFont(font)

在用户选择了字体并单击OK按钮后,使用标签(label)对象的setFont方法设置标签内容的字体。

以上是关于PyQt4字体对话框QFontDialog的主要内容,如果未能解决你的问题,请参考以下文章

4.3 标准字体对话框

从 QFontDialog PyQt 返回字体大小和字体系列

各种对话框

Qt标准对话框

10.标准对话框

第50课 文本编辑器项目持续开发