字体对话框时用来显示字体的对话框部件。
#!/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方法设置标签内容的字体。