PyQt5 – 当被按下时为被按下的指标设置背景色

  • Post category:Python

关于 PyQt5 中设置被按下时的指标背景色,一般可以通过 QSS 样式表来实现。具体步骤如下:

1. 为指标设置样式表

button.setStyleSheet("""
    QPushButton {
        border: none;
        padding: 10px 20px;
        font-size: 18px;
        color: #fff;
        background-color: #3498db; /* 默认背景色 */
    }
    QPushButton:checked {
        background-color: #2ecc71; /* 被按下时的背景色 */
    }
""")

其中,QPushButton 是 QSS 的选择器,border: none 表示去除边框,padding 表示内边距,font-size 表示字体大小,color 表示字体颜色,background-color 表示默认背景颜色,QPushButton:checked 表示当按钮被按下时的状态。

2. 设置为可选中

button.setCheckable(True)

这个方法用来设置按钮为可选中状态。

示例说明

下面就通过两个示例来说明如何使用 QSS 样式表设置被按下时的指标背景色。

示例1:单选框

from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout

app = QApplication([])
window = QWidget()

button1 = QRadioButton("选项1")
button2 = QRadioButton("选项2")

layout = QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)

window.setLayout(layout)
window.show()

button1.setStyleSheet("""
    QRadioButton {
        font-size: 16px;
    }
    QRadioButton::indicator:checked {
        background-color: #2ecc71; /* 被选中时的背景色 */
    }
""")
button2.setStyleSheet("""
    QRadioButton {
        font-size: 16px;
    }
    QRadioButton::indicator:checked {
        background-color: #2ecc71; /* 被选中时的背景色 */
    }
""")

app.exec_()

该示例中使用了 QRadioButtonQVBoxLayout 进行布局。通过 button1.setStyleSheetbutton2.setStyleSheet 方法为单选框设置 QSS 样式表,只有选中时才会显示背景颜色。

示例2:复选框

from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout

app = QApplication([])
window = QWidget()

button1 = QCheckBox("选项1")
button2 = QCheckBox("选项2")

layout = QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)

window.setLayout(layout)
window.show()

button1.setStyleSheet("""
    QCheckBox {
        font-size: 16px;
    }
    QCheckBox::indicator:checked {
        background-color: #2ecc71; /* 被选中时的背景色 */
    }
""")
button2.setStyleSheet("""
    QCheckBox {
        font-size: 16px;
    }
    QCheckBox::indicator:checked {
        background-color: #2ecc71; /* 被选中时的背景色 */
    }
""")

app.exec_()

该示例中使用了 QCheckBoxQVBoxLayout 进行布局。同样使用 button1.setStyleSheetbutton2.setStyleSheet 方法为复选框设置 QSS 样式表,只有选中时才会显示背景颜色。

以上就是使用 PyQt5 设置被按下时的指标背景色的完整攻略。