【问题标题】:How can I set the stylesheet of a certain element of Qmessagebox如何设置 Qmessagebox 某个元素的样式表
【发布时间】:2012-06-27 12:25:10
【问题描述】:

我通过以下方式制作了一个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 的背景,而不给按钮和文本框添加背景?

【问题讨论】:

    标签: qt stylesheet messagebox


    【解决方案1】:

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

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

    更多详情请见The Style Sheet Syntax - Selector Types。

    【讨论】:

    • 在您的情况下,答案确实是:如果一切都失败了,请像阅读一本书一样阅读文档。我发现至少在 Qt 的情况下,没有什么可以替代在人生的某个阶段通读一遍。除非你真的读过它,否则你会一直错过这样的东西。一页一页。使用网络浏览器和书签/历史记录来跟踪您已阅读的内容。
    猜你喜欢
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多