激活 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()))
当文本框已填充且组合框项已 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()))