如何在Qt中更改QMessageBox的字体?

5

我试图使用QComboBoxQPushButton构建一个简单的应用程序。想法是将系统中所有可用字体的列表填充到QComboBox中。当用户选择一个字体并按下QPushButton时,会出现一个带有所选字体的QMessageBox。那么如何实现呢?

3个回答

4
解决方案是使用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


0

在设置消息框标签的文本时,您可以使用基本HTML标记。QLabel支持的标记包括<font>。这种方法还允许更多样化的格式。


没错。但我想使用一些类方法,这样做会更加简洁。 - sabertooth1990
1
我认为这两种方法没有哪一种更加清晰。但是选择哪一个方向取决于你。 - Silicomancer

0

正如之前所建议的那样,您可以在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>",
)

结果为: QMessageBox


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接