Привязать QTextEdit к QPushButton

Подскажите, как сделать кнопку неактивной пока в QTextEdit нет текста от пользователя?

У меня строчка выглядит так:

form.textEdit.textChanged.connect(lambda text: 
    form.btn_ticket.setEnabled(bool(text)))

Но при запуске, если начать вводить текст - приложение падает выдает ошибку:

Process finished with exit code -1073740791 (0xC0000409)

Спасибо.


Ответы (1 шт):

Автор решения: S. Nick

Если вы хотите получать быстрые и правильные ответы - всегда предоставляйте минимально-воспроизводимый пример, который демонстрирует проблему.

Учитывая что это ваш первый вопрос, возможное решение может выглядеть так:

import sys
from PyQt5.Qt import *


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        
        self.textEdit = QTextEdit()
        self.textEdit.textChanged.connect(self.text_changed)
        
        self.btn_ticket = QPushButton('Button')
        
        layout = QVBoxLayout(self)
        layout.addWidget(self.textEdit)
        layout.addWidget(self.btn_ticket)
        
        self.text_changed()
        
    def text_changed(self):
        text=self.textEdit.toPlainText().strip()
        if text:
            self.btn_ticket.setEnabled(True)
        else:
            self.btn_ticket.setEnabled(False)        
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet('QWidget {font-size: 17px;}')
    myApp = MyApp()
    myApp.show()
    sys.exit(app.exec())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка