如何设置Qmessagebox的某个元素的样式表

时间:2012-06-27 12:25:11

标签: qt stylesheet messagebox

我以下列方式创建了一个QMessageBox:

msgBox.setText("Are you sure?");
msgBox.setStandardButtons(QMessageBox::Yes| QMessageBox::No);
msgBox.setStyleSheet("background-image: url(image)");
msgBox.exec();

不幸的是,在消息框上使用setStyleSheet设置按钮,文本框和实际的msgbox的背景。这不是我想要的。我只想让msgbox有一个背景而不是消息框的其他组件。我发现使用:

msgBox.button(QMessageBox::Yes)->setStyleSheet(...)

可用于仅在按钮上设置背景。是否有一个命令可以设置msgBox的背景,而无需在按钮和文本框中添加背景?

1 个答案:

答案 0 :(得分:3)

您可以使用选择器限制样式将应用于哪些元素。因此,要仅将样式应用于QMessageBox本身而不是其子项,您可以使用:

msgBox.setStyleSheet("QMessageBox { background-image: url(image) }");

有关详细信息,请参阅The Style Sheet Syntax - Selector Types