📅  最后修改于: 2023-12-03 15:33:53.656000             🧑  作者: Mango
在 PyQt5 的 QSpinBox 中,我们可以通过样式表来为向上按钮添加背景图像。在这个例子中,我们将为 QSpinBox 的多个状态添加不同的背景图像。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSpinBox, QHBoxLayout
from PyQt5.QtGui import QPixmap
class Example(QWidget):
def __init__(self):
super().__init__()
# 创建 QSpinBox 和 QHBoxLayout 布局
self.spinbox1 = QSpinBox()
self.spinbox2 = QSpinBox()
self.hbox = QHBoxLayout()
# 在样式表中为向上按钮添加背景图像
self.spinbox1.setStyleSheet("QSpinBox::up-button {background-image: url(up_arrow.png);}"
"QSpinBox::up-button:hover {background-image: url(up_arrow_hover.png);}"
"QSpinBox::up-button:pressed {background-image: url(up_arrow_pressed.png);}")
self.spinbox2.setStyleSheet("QSpinBox::up-button {background-image: url(up_arrow2.png);}"
"QSpinBox::up-button:hover {background-image: url(up_arrow_hover2.png);}"
"QSpinBox::up-button:pressed {background-image: url(up_arrow_pressed2.png);}")
# 将 QSpinBox 添加到 QHBoxLayout 布局
self.hbox.addWidget(self.spinbox1)
self.hbox.addWidget(self.spinbox2)
# 设置 QWidget 的主要布局
self.setLayout(self.hbox)
# 显示 QWidget
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的示例代码中,我们创建了一个 QWidget 的子类 Example。在初始化函数中,我们创建了两个 QSpinBox 和一个 QHBoxLayout。然后,我们为每个 QSpinBox 的向上按钮设置了三个不同状态下的背景图像:正常、鼠标滑过和鼠标按下。我们使用 CSS 语法来为 QSpinBox::up-button 选择器定义样式。
最后,我们将两个 QSpinBox 添加到 QHBoxLayout 中,并将其设置为 QWidget 的主要布局。最后,我们使用 show() 函数来显示 QWidget。
在这个例子中,我们使用了两个不同的背景图像。您可以使用您自己的图像来改变不同状态下的背景样式。