2016-05-03 9 views
0

У меня есть поле QLineEdit и QPushButton. Кнопка должна быть отключена, поскольку QLineEdit пуст.Как отключить кнопку, если поле редактирования не пустое?

Как это сделать?

+1

Первоначально выключайте кнопку; а затем на EditField, как только он примет какой-либо ввод, измените его кнопку - если есть текст, он включает кнопку, если пользователь удалил весь текст, отключите кнопку. – dwanderson

+1

Возможно, вы захотите проверить [сигналы и слоты в Pyside] (https://wiki.qt.io/Signals_and_Slots_in_PySide). Ваш QEditLine выдает сигнал [textChanged] (https://deptinfo-ensip.univ-poitiers.fr/EN/pyside-docs/PySide/QtGui/QLineEdit.html#PySide.QtGui.PySide.QtGui.QLineEdit.textChanged), когда ... ну, его текст меняется, и вы можете проверить, что такое текущий текст, и соответственно настроить состояние кнопки. – Hans

ответ

4

хорошо, я буду только заключить, что они сказали в комментариях, некоторый код, как

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

и да, сигналы/имена функций очевидны, вам нужно проверить больше на Docs/воспитателя

0

Вот один вкладыш решение:

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

Вы все еще должны установить начальное состояние кнопки Ложь. Однако вы можете сделать это в декларации. например

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