0
我想重寫pyqt5中QSpinBox的stepBy方法,以便在更改值之前強制執行驗證。 但用我的代碼,當我點擊spinbox的「增加」按鈕時,一切順利,但「減少」按鈕似乎不工作......爲什麼只有這個?重寫QSpinBox.stepby方法使spinbox僅增量
下面是代碼:
class custom_spinbox(PyQt5.QtWidgets.QSpinBox):
def __init__(self, *args, **kwargs):
super(custom_spinbox, self).__init__(*args, **kwargs)
def stepBy(self, step):
if step == 1:
print("up")
if step == -1:
print("down")
class ui_attr(QWidget):
def __init__(self, *args, **kwargs):
super(ui_attr, self).__init__()
#loading all the stuff
uic.loadUi("wdg_attr_2.ui", self)
test = custom_spinbox()
self.grid.addWidget(test, 1, 1)
def aff(self):
self.show()
增加按鈕打印「向上」在控制檯上,但減量按鈕不會顯示任何東西。 我試過繼承QAbstractSpinBox而不是QSpinBox,但沒有任何東西印在控制檯上。
我錯過了什麼?
你需要什麼樣的驗證?您可以使用'minimum'和'maximum'屬性來限制允許的範圍,或者使用'valueChanged'信號來檢測值的變化。 –
這是一個解決方案,但它讓我覺得按照錯誤的順序做事情:檢查變化,驗證在這種情況下是否可能,如果不可以,則將其顛倒... – Dodrekai