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方法设置标签内容的字体。

原文地址:https://www.cnblogs.com/moonlightpoet/p/5354648.html