在python中更改QLE的属性

2024-10-01 11:26:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前对我创建的QLE有问题。我希望qle获取一个值,将其转换为浮点,然后根据该值是正值还是负值增加或减少标签值。唯一的问题是,每次我在qle中键入内容时,它都会在我完成键入之前将该值添加到标签中。例如:我在qle中输入“4”,但一旦我输入“4”,它就会将它读为4两次,因此标签将更改为8。也许有一种方法,当我按下按钮时,它会增加或减少,但只有在我按下按钮之后? 我为我创建的一个按钮添加了代码,也许把它和qle链接起来会更容易。非常感谢

    #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))

Tags: textselfforif标签resultfloat按钮
1条回答
网友
1楼 · 发布于 2024-10-01 11:26:11

使用^{}信号代替textChanged,该信号仅在按下回车/回车键或行编辑失去焦点时才会触发:

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

相关问题 更多 >