关于 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_()
该示例中使用了 QRadioButton
和 QVBoxLayout
进行布局。通过 button1.setStyleSheet
和 button2.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_()
该示例中使用了 QCheckBox
和 QVBoxLayout
进行布局。同样使用 button1.setStyleSheet
和 button2.setStyleSheet
方法为复选框设置 QSS 样式表,只有选中时才会显示背景颜色。
以上就是使用 PyQt5 设置被按下时的指标背景色的完整攻略。