按下时更改QPushButton颜色

时间:2011-02-08 00:41:18

标签: c++ qt user-interface

有没有办法改变QPushButton的背景颜色,通过修改QPalette对象来压缩它?我意识到它可以用样式表完成,但想通过修改QPalette来实现它。类似于未按下时如何更改按钮背景颜色的内容:

QPushButton myButton;
QPalette p(myButton.palette());

p.setColor(QPalette::Button, QColor("#ffffff"));
myButton.setPalette(p);

4 个答案:

答案 0 :(得分:2)

连接到QPushButton的pressed()信号并使用所需颜色更新调色板,然后连接到released()信号并将颜色切换回旧颜色。应该这样做。

您可能需要在设置颜色后运行update()或在极端情况下repaint()运行。

答案 1 :(得分:2)

只需将样式表添加到qbushbutton本身或其父qwidget:

qwidget.setStyleSheet("QPushButton:checked { background-color: red; }")

当选中QPushButton时,这会将背景颜色设置为红色。

答案 2 :(得分:1)

连接到按钮的pressed信号,并在连接的插槽中设置调色板。您可能需要致电repaint()强制立即更新。

答案 3 :(得分:0)

你可以在按下时为按钮设置样式表。here is the Example告诉如何为按钮设置样式表..但在你的情况下,你需要有两个不同的样式表,一个是按下按钮,类似的它被释放你应该重置一些其他样式表。