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
网友评论