【问题标题】:Changing QPushButton Color when Pressed按下时更改 QPushButton 颜色
【发布时间】:2011-02-08 00:41:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ qt user-interface


    【解决方案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 告诉您如何为按钮设置样式表.. 但在您的情况下,您需要有两个不同的样式表,一个是按钮按下时,类似的是发布后,您应该使用其他样式表进行重置。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-07-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多