以编程方式确定 Qt 样式表选项?
是否可以在 Qt 运行时查找样式表值?
我正在开发一个从 QPushButton
派生的自定义按钮,它设置了一些样式表属性。我希望能够查找一些样式表设置,例如边框宽度,margin
,padding-top
,padding-left
,padding-right
等。如果不调用 widget->getStyleSheet()
并自己解析这些值,是否可以做到这一点?
Is it possible to look up stylesheet values at runtime in Qt?
I'm working on a custom button derived from QPushButton
that has some stylesheet properties set. I'd like to be able to look up some stylesheet settings like border width, margin
, padding-top
, padding-left
, padding-right
, etc. Is this at all possible to do without calling widget->getStyleSheet()
and parsing out the values myself?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在内部,当您调用 QApplication::setStyleSheet() 时,Qt 创建一个名为 QStyleSheetStyle 的 QStyle 子类。
这意味着您可以通过普通的 QStyle 方法查询样式表信息。只需记住正确填写选项和小部件参数,以确保您从样式表中获得正确的值。
Internally, when you call QApplication::setStyleSheet() Qt creates a QStyle sub-class called QStyleSheetStyle.
That means you can query style sheet information via the normal QStyle methods. Just remember to fill in the options and widget parameters properly to ensure you get the right values from the style sheet.
别这么想,你也许可以通过单步执行绘图代码找到一些东西。但是样式表的解析和应用已经相当优化,并且使用了大量的预处理。我什至不认为如果小部件实际上是在父级中设置的,您就无法访问该小部件的样式表。
Don't think so, you might be able to find something by stepping through the drawing code. But the parsing and the application of stylesheets is pretty optimised and uses a lot of preprocessing. I don't even think that you can get to the stylesheet of a widget if it was actually set in a parent.