在我的qt C++ gui应用程序中,我有一个带有3个按钮和一些标准功能的QMessageBox。我想用样式表和字体来装饰所有这些。
我成功地做到了以下几点——
i. 设置消息框背景。
ii. 设置按钮背景。
void MainWindow::on_pushButton_clicked()
{
QMessageBox msgbox;
msgbox.setInformativeText("YOLO");
msgbox.setStandardButtons(QMessageBox::Ok|QMessageBox::No|QMessageBox::Cancel);
msgbox.setWindowFlags(Qt::FramelessWindowHint);
msgbox.setStyleSheet("QMessageBox { background-image: url(:/res/bk.jpg) }");
msgbox.button(QMessageBox::Ok)->setStyleSheet("QPushButton { background-image: url(:/res/green_bk.jpg) }");
msgbox.button(QMessageBox::No)->setStyleSheet("QPushButton { background-image: url(:/res/red_bk.jpeg) }");
msgbox.exec();
}
但是我坚持如何将字体(类型和大小)设置为"信息文本"字段,以及如何使其加粗。我已经参考了信息文本属性,但我无法解决问题。关于如何实现这一目标的任何想法?谢谢。
作为附加查询,我可以更改按钮的字体(类型和大小)并设置粗斜体等吗?
编辑
我对我的代码进行了以下更改,结果令人困惑,
QFont font;
font.setBold(true);
msgbox.setFont(font);
完成此操作后,我的信息文本变得粗体,我的取消按钮变得粗体。但是"确定"和"否"按钮是正常的(非粗体)。如果我删除两个按钮的 setStylesheet,只有这样它们才会变得粗体(这没用,因为我想要背景图像)。
在所有这些???中产生协同作用的任何想法
我找到了解决您问题的方法。
QMessageBox msg(QMessageBox::Information,"Hey", "Dude", QMessageBox::Ok);
QFont font;
font.setBold(true);
msg.setFont(font);
msg.button(QMessageBox::Ok)->setFont(font);
msg.exec();