学习《PyQt4入门指南 PDF中文版.pdf 》笔记
字体对话框一个用来设置字体的对话框部件
<span style="font-size:12px;">#!/usr/bin/python
# fontdialog.py
from PyQt5.QtWidgets import QApplication, QPushButton, QFontDialog, QHBoxLayout, QLabel
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
class FontDialog(QtWidgets.QWidget):
def __init__(self, parent= None):
QtWidgets.QWidget.__init__(self)
hbox = QHBoxLayout()
self.setGeometry(300, 300, 150, 110)
self.setWindowTitle('FontDialog')
button = QPushButton('Dialog', self)
button.setFocusPolicy(Qt.NoFocus)
button.move(20, 20)
hbox.addWidget(button)
button.clicked.connect(self.showDialog)
self.label = QLabel('knowledge only matters', self)
self.label.move(130, 20)
hbox.addWidget(self.label, 1)
self.setLayout(hbox)
def showDialog(self):
font, ok = QFontDialog.getFont()
if ok:
self.label.setFont(font)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
qb = FontDialog()
qb.show()
sys.exit(app.exec_())</span>
在本示例中,我们在主界面中显示了一个按钮和一个标签。单击按钮后,用户可在弹出字体对话框中选择字体来修改标签中的字体样式。
hbox.addWidget(self.label,1)
该语句将label标签添加到hbox布局中,并通过第二个参数1设置label的大小时可变的。该设置是必须的,因为在用户选择不同的字体时,label标签中的字体可能会变大,若不进行设置,标签中的内容就可能不会被全部显示。
font,ok = QFontDialog.getFont()
该语句类似刚才的输入对话框,创建弹出对话框。
if ok:
self.label.setFont(font)
在用户选择了字体并单击OK按钮后,使用标签对象的setFont方法设置label内的字体。