如何在Qt中更改QMessageBox的字体



我试图用QComboBoxQPushButton构建一个简单的应用程序。其想法是用系统中所有可用字体的列表填充QComboBox。当用户选择一种字体并按下QPushButton时,就会出现一个带有所选字体的QMessageBox。现在该怎么做?

解决方案使用QMessageBoxsetFont()方法

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

最新更新