PyQt5 QSpinBox – 当上升按钮被按下时为其添加背景色

  • Post category:Python

当使用PyQt5中的QSpinBox组件时,有时候我们希望在用户按下上升按钮时改变其背景颜色。下面就是PyQt5 QSpinBox组件与背景色改变的使用攻略。

1. 添加PyQt5库

首先,需要在Python中安装PyQt5库。可以使用pip命令进行安装:

pip install PyQt5

2. 创建QSpinBox组件

在创建PyQt5 QSpinBox组件时,可以指定它的最小值、最大值和初始值。例如下面的代码创建了一个最小值为0、最大值为10、初始值为5的QSpinBox:

from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox

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

spinBox = QSpinBox()
spinBox.setRange(0, 10)
spinBox.setValue(5)

window.show()
app.exec_()

3. 添加样式

为了改变上升按钮按下时QSpinBox的背景颜色,我们需要添加一个样式表。在样式表中,我们可以指定不同的样式属性,例如背景颜色、字体、边框等。在这里,我们只需要使用background-color属性来指定背景颜色。请看下面的代码:

from PyQt5.QtCore import Qt

styleSheet = """
QSpinBox::up-button:pressed {
    background-color: red;
}
"""

spinBox.setStyleSheet(styleSheet)

在样式表中,我们使用QSpinBox::up-button选择器来选取上升按钮,然后使用:pressed伪类来表示按钮按下时的状态。最后,我们指定了背景颜色为红色。

完整示例

在完整的代码示例中,我们创建了两个QSpinBox组件,一个垂直布局以及样式表并将其应用于QSpinBox组件。具体代码如下:

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

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

spinBox1 = QSpinBox()
spinBox1.setRange(0, 10)
spinBox1.setValue(5)

spinBox2 = QSpinBox()
spinBox2.setRange(0, 10)
spinBox2.setValue(5)

layout = QVBoxLayout()
layout.addWidget(spinBox1)
layout.addWidget(spinBox2)

styleSheet = """
QSpinBox::up-button:pressed {
    background-color: red;
}
"""

spinBox1.setStyleSheet(styleSheet)
spinBox2.setStyleSheet(styleSheet)

window.setLayout(layout)
window.show()
app.exec_()

在运行此代码示例时,我们可以看到两个QSpinBox组件和一个样式表,当我们按下第一个QSpinBox的上升按钮时,它的背景颜色将变为红色。