【问题标题】:How to disable a Button unless a Edit Field isn't empty?除非编辑字段不为空,否则如何禁用按钮?
【发布时间】:2016-05-03 14:20:13
【问题描述】:

我有一个 QLineEdit 字段和一个 QPushButton。 只要 QLineEdit 为空,该按钮就应该被禁用。

怎么做?

【问题讨论】:

  • 初始禁用按钮;然后在 EditField 上,一旦它接受一些输入,让它修改按钮 - 如果有文本,它启用按钮,如果用户删除了所有文本,禁用按钮。
  • 您可能想查看signals and slots in Pyside。你的 QEditLine 会发出一个textChanged signal 当......好吧,它的文本发生变化,然后你可以检查当前文本是什么并相应地设置你的按钮状态。

标签: python qt pyside qlineedit qpushbutton


【解决方案1】:

好吧,我将总结他们在 cmets 中所说的话,一些代码,例如

self.btnButton.setDisable(True)
self.leInput.textChanged.connect(self.disableButton)
def disableButton(self):
    if len(self.leInput.text()) > 0:
        self.btnButton.setDisable(False)

是的,信号/函数名称很明显,您需要在 docs/tutor 上查看更多信息

【讨论】:

    【解决方案2】:

    这是一个单行解决方案:

    self.textBox.textChanged[str].connect(lambda: self.myBtn.setEnabled(self.textBox.text() != ""))
    

    您仍然必须将按钮的初始状态设置为 False。不过,您可以在声明中执行此操作。例如

    self.myBtn = QtGui.QPushButton("My Button", enabled=False)
    

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多