我想要創建一個雙步移動框,以0.2爲步長更改值。但是當用戶根據步驟輸入一個不正確的值時。我將其歸一化到最接近的正確值。 我嘗試了類似下面顯示的代碼,但我不知道如何停止輸入0.5等值。請幫助我。修復在PyQt中輸入雙擊針的值
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class SigSlot(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setWindowTitle('spinbox value')
self.resize(250,150)
self.lcd1 = QLCDNumber(self)
self.spinbox1 = QDoubleSpinBox(self)
self.spinbox1.setSingleStep(0.2)
self.spinbox1.setCorrectionMode(1)
# create a Grid Layout
grid = QGridLayout()
grid.addWidget(self.lcd1, 0, 0)
grid.addWidget(self.spinbox1, 1, 0)
self.setLayout(grid)
# allows access to the spinbox value as it changes
self.connect(self.spinbox1, SIGNAL('valueChanged(double)'), self.change_value1)
def change_value1(self, event):
val = self.spinbox1.value()
self.lcd1.display(val)
app = QApplication([])
qb = SigSlot()
qb.show()
app.exec_()
非常感謝,能否詳細介紹一下創建子類,然後重寫驗證器方法的第一種方法。因爲這只是我創建的示例程序來演示問題。 – Kakashi 2012-03-11 06:39:15
@Kakashi:看我的編輯。 – Avaris 2012-03-11 06:49:11
@卡卡西:哎呀,我的正則表達式技能是生鏽的:)。用正確的更新。 – Avaris 2012-03-11 07:14:13