我知道怎么设置它:
color_frame.setStyleSheet("QWidget { background-color: blue}")
但是如何读取QtFrame背景的颜色值(可能是十六进制,我不在乎)?
请注意,我不是在找:
color_frame.palette().highlight().color().name()
因为它似乎不给我QtFrame背景色的价值。
发布于 2022-01-05 13:25:22
highlight()
不会提供背景信息,因为Highlight
角色用于选择。
默认情况下,小部件使用Window
角色(除非由setBackgroundRole()
指定)来绘制背景,因此需要使用相关的window()
函数来获得它:
color_frame.palette().window().color().name()
或者只使用color()
和相关角色作为参数:
color_frame.palette().color(QPalette.Window).name()
要稍微确定一下,请使用当前的背景角色:
color_frame.palette().color(color_frame.backgroundRole()).name()
请注意:
color
(适用于WindowText
、Text
和ButtonText
角色)、background
(Window
、Base
和Button
)、selection-color
(Highlight
)、selection-background-color
(HighlightedText
)和alternate-base
(AlternateBase
);所有其他颜色角色都是基于上述自动计算的;任何其他属性,特别是为子控件设置的属性,都是不可用的;https://stackoverflow.com/questions/70593352
复制相似问题