#python #signals-slots
Вопрос:
Я только начал самостоятельно изучать python. Цель нижеследующего — узнать об обработке сигналов и слотов. Я продолжал получать ошибку атрибута, и я надеялся, что кто-нибудь сможет дать мне ответ.
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * class MySignal(QObject): signal1 = pyqtSignal() def run(self): self.signal1.emit() class MyWindow(QMainWindow): def __init__(self): super().__init__() mysignal = MySignal() mysignal.signal1.connect(self.signal1_emitted) mysignal.run() @pyqtSlot() def signal1_emitted(self): print("signal1 emitted") app = QApplication(sys.argv) window = MyWindow() window.show() app.exec_()
код выдает мне эту ошибку: AttributeError: объект ‘MyWindow’ не имеет атрибута ‘signal1_emitted’
Спасибо, что прочитали мой вопрос!
Комментарии:
1. Похоже, у вас ошибка отступа, ваш
signal1_emitted
метод/свойство имеет отступ слишком много раз и теперь определяется в__init__
, а не в вашем классе2. @IainShelvington Большое тебе спасибо. это сработало!