📅  最后修改于: 2023-12-03 14:45:49.972000             🧑  作者: Mango
在PyQt5中,QSpinBox小部件提供了一种选取整数值的简单方式。 QSpinBox默认情况下会添加增加和减少整数值的箭头按钮。但是,有时需要移除这些箭头按钮。本文将介绍如何在PyQt5中移除QSpinBox的箭头按钮。
要移除QSpinBox的箭头按钮,需要对QSpinBox的样式表进行更改。对于Windows风格的应用程序,我们需要禁用掉这些箭头按钮的默认样式表。考虑以下代码,其中QSpinBox的组件ID为SpinBox:
self.spinBox = QSpinBox()
self.spinBox.setObjectName("SpinBox")
self.spinBox.setStyleSheet("QSpinBox::up-button { width: 0px; } QSpinBox::down-button { width: 0px; }")
在这里,我们使用setObjectName方法来设置QSpinBox的对象名称,并将其设置为SpinBox。接下来,我们使用setStyleSheet方法设置QSpinBox的样式表。第一行样式表QSpinBox :: up-button {width:0px;}用于隐藏增加按钮,第二行样式表QSpinBox :: down-button {width:0px;}用于隐藏减少按钮。
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt5 QSpinBox Example")
self.setGeometry(100, 100, 400, 300)
self.UiComponents()
self.show()
def UiComponents(self):
# Creating a spin box
self.spinBox = QSpinBox(self)
# Setting spin box geometry
self.spinBox.setGeometry(100, 100, 100, 30)
# Setting maximum and minimum value
self.spinBox.setMaximum(50)
self.spinBox.setMinimum(0)
# Removing arrow buttons
self.spinBox.setObjectName("SpinBox")
self.spinBox.setStyleSheet("QSpinBox::up-button { width: 0px; } QSpinBox::down-button { width: 0px; }")
# create pyqt5 app
App = QApplication(sys.argv)
# create the instance of our Window
window = Window()
# start the app
sys.exit(App.exec())
这里,我们创建了一个名为Window的QMainWindow类,该类包含一个名为SpinBox的QSpinBox小部件。我们使用setGeometry方法设置了QSpinBox的几何形状,并使用setMaximum和setMinimum方法来设置QSpinBox的最大和最小值。最后,我们使用setObjectName方法设置QSpinBox的对象名称,并使用setStyleSheet方法来设置QSpinBox的样式表,以便移除箭头按钮。
运行上述代码,将显示一个没有箭头按钮的QSpinBox。