📜  PyQt5 QSpinBox – 移除箭头按钮(1)

📅  最后修改于: 2023-12-03 14:45:49.972000             🧑  作者: Mango

PyQt5 QSpinBox – 移除箭头按钮

在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。