首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析样式表中的属性值以绘制自定义小部件

解析样式表中的属性值以绘制自定义小部件
EN

Stack Overflow用户
提问于 2020-11-28 22:47:58
回答 1查看 319关注 0票数 0

我必须创建几个定制的qt小部件,其中一些使用自定义绘图。这些小部件应该通过公司qt样式表进行样式化。

这就产生了这样的问题:某些自定义小部件需要从样式表中检索已应用于QMainWindowQApplication的值。这个值可以是qt的正式属性之一,也可以是一些自定义的qproperty-...属性。

但是,从小部件中访问它们并不容易。一种选择是获取样式表字符串,并手动解析/regex我感兴趣的值。这显然是一个糟糕的解决方案,因为qt必须已经具备了解析样式表数据的一些功能,而样式表数据是绘制正式qt小部件时使用的。

...Qt创建一个名为QStyle的QStyleSheetStyle.That子类,这意味着您可以通过普通的QStyle方法查询样式表信息.

问题1)

This post解决了这个问题,但不幸的是,它并没有详细说明如何真正实现这个目标。由于我缺乏经验,我无法找到如何做到这一点,即使是在深入qt的来源。

问题2)

我假设这只适用于常规的qt属性(而不是自定义的qproperty-...属性)。与这种方法相比,是否有更好的方法来访问它们?

代码语言:javascript
复制
# example for retrieving qproperty-offset
def get_offset(self):
    return self._offset

def set_offset(self, offset:int):
    self._offset = offset
    self.update()

offset = QtCore.Property(int, get_offset, set_offset)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-28 23:11:01

不,目前不可能实现Qt样式表,因为Qt样式表的实现是通过作为私有Qt一部分的QStyle实现的,而在Qt6中则是为了公开这种样式。因此,从样式表获取属性的解决方案是通过qproperty。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65055215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档