在 python 中更改 QLE 的 属性

Changing property of a QLE in python

我目前创建的 QLE 有问题。我希望 qle 取一个值,将其转换为浮点数,然后根据该值是正数还是负数来增加或减少标签值。唯一的问题是,每次我在 qle 中键入内容时,它都会在我完成键入之前开始将该值添加到标签中。例如:我在有效的 qle 中输入“4”,但一旦我输入“4”。任何东西它都会将其读取为 4 两次,因此标签将更改为 8。也许有一种方法可以让我按下按钮时它会增加或减少,但只有在我按下按钮后才会增加或减少? 我为我创建的按钮添加了代码,也许使用 qle link 会更容易。非常感谢!

    #this creates the increase button for cam1 focus
    self.btnCam1IncreaseFocus = QtGui.QPushButton("+",self)
    self.btnCam1IncreaseFocus.clicked.connect(self.cam1IncreaseFocus)
    self.btnCam1IncreaseFocus.resize(25,25)
    self.btnCam1IncreaseFocus.move(75,100)

    #This creates a textbox or QLE for a custom tweak value for cam1 focus
    self.qleTextBoxCam1Focus = QtGui.QLineEdit(self)
    self.qleTextBoxCam1Focus.resize(25,25)
    self.qleTextBoxCam1Focus.move(40,100)
    self.qleTextBoxCam1Focus.textChanged[str].connect(self.qleCam1Focus)

    def cam1IncreaseFocus(self):
    text = self.lblCam1Focus.text()
    n = float(text)
    n = n + 1
    self.lblCam1Focus.setText(str(n))

    def qleCam1Focus(self):
    text = self.qleTextBoxCam1Focus.text()
    if text == "":
        text = "0.0"
    if str(text).isalpha() == False:
        n = float(text)
    textLabel = self.lblCam1Focus.text()
    if textLabel == "":
        textLabel = "0.0"
    y = float(textLabel)
    result = n + y
    if result <= 0.0:
        result = 0.0
    self.lblCam1Focus.setText(str(result))

而不是 textChanged,使用 editingFinished 信号,它只会在按下 return/enter 或行编辑失去焦点时触发:

    self.qleTextBoxCam1Focus.editingFinished.connect(self.qleCam1Focus)