在我的qt C ++ gui应用程序中,我有一个带有3个按钮和一些标准功能的QMessageBox。我想用样式表和字体来装饰所有这些,而不是。
我成功地完成了以下任务 -
我。设置MessageBox背景。
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();
}
但我仍然坚持如何设置InformativeText字段的字体(类型和大小),以及如何使其粗体化。我已提到InformativeText Properties,但我无法解决问题。关于如何实现这一点的任何想法?感谢。
作为一个添加的查询,我是否可以更改按钮的字体(类型和大小)并设置Bold Italics等?
修改
我对我的代码进行了以下更改,结果令人费解,
QFont font;
font.setBold(true);
msgbox.setFont(font);
执行此操作后,我的informationText变为粗体,我的取消按钮变为粗体。但Ok和No按钮是正常的(非粗体)。如果我删除了两个按钮的setStylesheets,那么它们才变为粗体(这是没用的,因为我想要背景图像)。
在所有这些方面有任何协同作用的想法???
答案 0 :(得分:0)
我找到了解决您问题的方法。
QMessageBox msg(QMessageBox::Information,"Hey", "Dude", QMessageBox::Ok);
QFont font;
font.setBold(true);
msg.setFont(font);
msg.button(QMessageBox::Ok)->setFont(font);
msg.exec();