按下时更改 QPushButton 颜色
Posted
技术标签:
【中文标题】按下时更改 QPushButton 颜色【英文标题】:Changing QPushButton Color when Pressed 【发布时间】:2011-02-08 00:41:18 【问题描述】:有没有办法通过修改 QPalette 对象来改变按下的 QPushButton 的背景颜色?我意识到它可以用样式表来完成,但想通过修改 QPalette 来完成它。类似于在未按下按钮时更改背景颜色的方式:
QPushButton myButton;
QPalette p(myButton.palette());
p.setColor(QPalette::Button, QColor("#ffffff"));
myButton.setPalette(p);
【问题讨论】:
【参考方案1】:只需将样式表添加到 qbushbutton 本身或其父 qwidget:
qwidget.setStyleSheet("QPushButton:checked background-color: red; ")
这将在选中 QPushButton 时将背景颜色设置为红色。
【讨论】:
【参考方案2】:连接到 QPushButton 的 pressed() 信号并使用所需颜色更新调色板,然后连接到 released() 信号并将颜色切换回旧颜色。应该这样做。
您可能希望在设置颜色后运行update(),或者在极端情况下运行repaint()。
【讨论】:
【参考方案3】:连接到按钮的pressed 信号并将调色板设置在连接的插槽中。您可能需要致电 repaint()
强制立即更新。
【讨论】:
【参考方案4】:您可以在按下按钮时为按钮设置样式表。here is the Example 告诉您如何为按钮设置样式表.. 但在您的情况下,您需要有两个不同的样式表,一个是按钮按下时,类似的是发布后,您应该使用其他样式表进行重置。
【讨论】:
以上是关于按下时更改 QPushButton 颜色的主要内容,如果未能解决你的问题,请参考以下文章