我以下列方式创建了一个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的背景,而无需在按钮和文本框中添加背景?
答案 0 :(得分:3)
您可以使用选择器限制样式将应用于哪些元素。因此,要仅将样式应用于QMessageBox
本身而不是其子项,您可以使用:
msgBox.setStyleSheet("QMessageBox { background-image: url(image) }");
有关详细信息,请参阅The Style Sheet Syntax - Selector Types。