Qt样式表用于QMessageBox

3

我正在使用样式表。我想为QMessageBox的主消息文本和信息文本设置样式信息。是否可以访问这些子控件?

3个回答

10

是的,这是可能的。关键在于知道如何选择子控件。下面是如何更改文本样式的方法,在此示例中我将对话框设为灰色,文本设为米白色:

QMessageBox {
    background-color: #333333;
}

QMessageBox QLabel {
    color: #aaa;
}

第二个子句使用了一个“后代选择器”,在这种情况下意味着“任何QMessageBox的后代QLabel,包括儿子和孙子等”。您可以更具体地仅选择子元素,使用“QMessageBox > QLabel”。 我在这里找到了这些信息http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html

0

您可以在样式表中或使用setStyleSheet(...)简单地执行QMessageBox {font:...}

除非您试图将主要消息文本的样式与信息文本分开设置...这是您想要做的吗?


1
是的,我正在尝试将主要消息文本的样式与信息性文本分开设置。 - koan
在这种情况下,我建议查看这个网站:http://doc.qt.nokia.com/latest/qitemdelegate.html# - Ryan
由于QMessageBox与模型/视图无关,那么它如何相关呢?也许您可以建议一种使用它的方式;我不知道如何使用。 - koan
我有些困难记得当我引用那个网站时我要去哪里,但我几乎可以确定它有一个重点。如果一切都失败了,制作一个自定义的QMessageBox是否可能?这样你就可以通过覆盖绘图方法来实际控制正在绘制的内容的具体细节。很抱歉我不能提供真正的示例代码和更具体的建议(我非常忙碌,我的思维也太漂移了)。 - Ryan
我可以制作一个自定义样式的消息框克隆,但这违背了使用标准小部件和样式表的初衷... - koan
显示剩余2条评论

0

只需使用富文本 - 除了详细文本,因为它总是被解释为纯文本。

请查看此处的文档 here


这就是为什么我正在使用样式表的原因;我试图避免每次使用此小部件时都要设置样式信息。 - koan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接