首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得QtFrame在PyQt5中的背景颜色?

如何获得QtFrame在PyQt5中的背景颜色?
EN

Stack Overflow用户
提问于 2022-01-05 13:04:51
回答 1查看 79关注 0票数 0

我知道怎么设置它:

color_frame.setStyleSheet("QWidget { background-color: blue}")

但是如何读取QtFrame背景的颜色值(可能是十六进制,我不在乎)?

请注意,我不是在找:

color_frame.palette().highlight().color().name()

因为它似乎不给我QtFrame背景色的价值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-05 13:25:22

highlight()不会提供背景信息,因为Highlight角色用于选择。

默认情况下,小部件使用Window角色(除非由setBackgroundRole()指定)来绘制背景,因此需要使用相关的window()函数来获得它:

代码语言:javascript
运行
复制
color_frame.palette().window().color().name()

或者只使用color()和相关角色作为参数:

代码语言:javascript
运行
复制
color_frame.palette().color(QPalette.Window).name()

要稍微确定一下,请使用当前的背景角色:

代码语言:javascript
运行
复制
color_frame.palette().color(color_frame.backgroundRole()).name()

请注意:

  • 在某些情况下,样式可以以稍微不同的方式使用调色板(包括样式表中设置的颜色)所设置的颜色,并且绘图可能与预期的不同;请记住调色板颜色仅用作参考,这取决于样式“决定”对此有多严格;
  • 如果使用通用(o否)选择器,为父小部件设置全局属性通常不是一个好主意:一些复杂的小部件要求,一旦设置了单个属性,就必须设置所有其他属性。这尤其是QComboBox和QScrollBar的情况;您应该使用更具体的选择器 (可能使用类或对象名称);
  • 在设置样式表后可从调色板读取的唯一颜色属性是color (适用于WindowTextTextButtonText角色)、background(WindowBaseButton)、selection-color (Highlight)、selection-background-color (HighlightedText)和alternate-base (AlternateBase);所有其他颜色角色都是基于上述自动计算的;任何其他属性,特别是为子控件设置的属性,都是不可用的;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70593352

复制
相关文章

相似问题

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