从另一个 class pyqt 发送和接收信号
Send and receive signals from another class pyqt
我需要一种方法来接收 Class 发送给另一个 class 的信号。
我有 2 classes:
在我的第一个 class 中,我有一个函数可以发出一个名为 'asignal' 的信号
在我的第二个 class 中,我调用了第一个 class 函数,它发出一个信号。但我无法将第一个 class 信号连接到我的按钮。我该怎么做?
我收到此错误:AttributeError:'QPushButton' 对象没有属性 'asignal'
from PyQt5.QtCore import QObject, pyqtSignal
from PyQt5.QtWidgets import *
import sys
class Signals(QObject):
asignal = pyqtSignal(str)
def __init__(self):
super(Signals, self).__init__()
self.do_something()
def do_something(self):
self.asignal.emit('Hi, im a signal')
class Main(QWidget):
def __init__(self):
super(Main, self).__init__()
self.setGeometry(300, 250, 400, 300)
self.show()
self.coso()
def coso(self):
btn = QPushButton('click me')
btn.asignal.connect(lambda sig: print("Signal recieved" + sig))
s = Signals()
s.do_something()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = Main()
app.exec_()
我想要一种方法来接收从我的 'Signals' class 发射到我的 'Main' class 的信号。然后,在我的主 class 中,将信号连接到一个 Widget。
QPushButton 不是 Signals 对象,所以这就是您收到错误的原因。
s = Signals()
s.asignal.connect(lambda sig: print("Signal recieved" + sig))
s.do_something()
我需要一种方法来接收 Class 发送给另一个 class 的信号。 我有 2 classes: 在我的第一个 class 中,我有一个函数可以发出一个名为 'asignal' 的信号 在我的第二个 class 中,我调用了第一个 class 函数,它发出一个信号。但我无法将第一个 class 信号连接到我的按钮。我该怎么做?
我收到此错误:AttributeError:'QPushButton' 对象没有属性 'asignal'
from PyQt5.QtCore import QObject, pyqtSignal
from PyQt5.QtWidgets import *
import sys
class Signals(QObject):
asignal = pyqtSignal(str)
def __init__(self):
super(Signals, self).__init__()
self.do_something()
def do_something(self):
self.asignal.emit('Hi, im a signal')
class Main(QWidget):
def __init__(self):
super(Main, self).__init__()
self.setGeometry(300, 250, 400, 300)
self.show()
self.coso()
def coso(self):
btn = QPushButton('click me')
btn.asignal.connect(lambda sig: print("Signal recieved" + sig))
s = Signals()
s.do_something()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = Main()
app.exec_()
我想要一种方法来接收从我的 'Signals' class 发射到我的 'Main' class 的信号。然后,在我的主 class 中,将信号连接到一个 Widget。
QPushButton 不是 Signals 对象,所以这就是您收到错误的原因。
s = Signals()
s.asignal.connect(lambda sig: print("Signal recieved" + sig))
s.do_something()