激活 QComboxBox 和 QLineEdit 时如何 enable/disable 按钮

How to enable/disable button when QComboxBox and QLineEdit are activated

当文本框已填充且组合框项已 selected 时,我无法启用按钮。

我有以下代码,它在我输入文本后立即启用按钮,但没有 selected 组合框项目:

self.combo_box.currentIndexChanged[int].connect(self.showbutton)
self.textbox.textChanged.connect(self.showbutton)

def showbutton(self,index):
    self.enableNewButton.setEnabled((index != -1) and bool(self.textbox.text()))

然后我做了一个 print(index),当我 select 一个组合框项目时,我确实看到打印了正确的索引;但是当我在文本框中输入内容时,我也会看到打印的每个字符。

启用基于多个文本输入框的按钮没有问题,但这个按钮对我不起作用。

textChanged 信号发送当前文本,它永远不会等于 -1。因此,与其使用信号发出的参数,不如直接通过小部件本身检查这两个值,如下所示:

class Window(QtWidgets.QWidget):
    ...
    def showbutton(self):
        self.enableNewButton.setEnabled(
            self.combo_box.currentIndex() >= 0 and bool(self.textbox.text()))