以编程方式确定 Qt 样式表选项?

Posted

技术标签:

【中文标题】以编程方式确定 Qt 样式表选项?【英文标题】:Determining Qt stylesheet options programmatically? 【发布时间】:2011-05-24 23:48:08 【问题描述】:

是否可以在 Qt 运行时查找样式表值?

我正在开发一个从QPushButton 派生的自定义按钮,该按钮设置了一些样式表属性。我希望能够查找一些样式表设置,如边框宽度、marginpadding-toppadding-leftpadding-right 等。如果不调用 widget->getStyleSheet() 并解析出来,这是否可行自己的价值观?

【问题讨论】:

【参考方案1】:

在内部,当您调用 QApplication::setStyleSheet() 时,Qt 会创建一个 QStyle 子类,称为 QStyleSheetStyle。

这意味着您可以通过普通的 QStyle 方法查询样式表信息。请记住正确填写选项和小部件参数,以确保您从样式表中获得正确的值。

【讨论】:

嗯,这是考古学的胜利,但是……你能举个例子吗?如何使用 QStyle 获取小部件 CSS 属性?【参考方案2】:

不要这么想,你也许可以通过单步执行绘图代码找到一些东西。但是样式表的解析和应用是相当优化的并且使用了大量的预处理。我什至不认为如果它实际上是在父级中设置的,您可以访问小部件的样式表。

【讨论】:

以上是关于以编程方式确定 Qt 样式表选项?的主要内容,如果未能解决你的问题,请参考以下文章

在 Asp.Net 中以编程方式添加样式表

QT开发(六十五)——QT样式表编程实例

Qt样式表踩坑小记

Qt:使用样式表设置背景图像不适用于资源

Qt:样式化 QTabWidget

Qt 中的样式表、隐藏的小部件和大小