我试图用QComboBox
和QPushButton
构建一个简单的应用程序。其想法是用系统中所有可用字体的列表填充QComboBox
。当用户选择一种字体并按下QPushButton
时,就会出现一个带有所选字体的QMessageBox
。现在该怎么做?
解决方案使用QMessageBox
的setFont()
方法
QMessageBox *msg = new QMessageBox(QMessageBox::Information, "Message with font",
"This message is in font: " + ui->comboBox->currentText(),
QMessageBox::Ok | QMessageBox::Cancel, this);
QFont font = QFont(ui->comboBox->currentText());
msg->setFont(font);
msg->exec();
其中combobox
是所使用的QComboBox
。
在将文本设置为消息框标签时,可以使用基本的HTML标记。QLabel支持的标记包括<font>
。这种方法还允许更通用的格式化。
如前所述,您可以在Html块中使用样式(在我的示例中,将样式添加到段落中(:
QMessageBox.about(
self,
"About",
"<font>"
"<p style='font-family: Terminal'>An simple app.</p>"
"<p style='font-family: Georgia, 'Times New Roman'>- PyQt</p>"
"<p>- Qt Designer</p>"
"<p>- Python3</p>",
)
结果:Q MessageBox