信号未连接到方法
Posted
技术标签:
【中文标题】信号未连接到方法【英文标题】:Signal not connecting to a method 【发布时间】:2015-06-25 16:27:21 【问题描述】:我正在使用套接字。当我从服务器接收信息时,我使用线程中的方法listen
处理它。我想从这里弹出窗口,所以我使用信号。
问题是信号没有触发函数。这是一个工作示例:
class Client(QtCore.QObject):
signal = QtCore.pyqtSignal()
def __init__(self):
super(Client, self).__init__()
self.thread_wait_server = threading.Thread(target=self.wait_server)
self.thread_wait_server.daemon = True
self.thread_wait_server.start()
def wait_server(self):
print('waiting')
self.signal.emit()
print("'signal emited")
class Main:
def Do(self):
print("'Do' starts")
self.Launch()
time.sleep(2)
print("'Do' ends")
def Launch(self):
print("'Launch' starts")
self.client = Client()
self.client.signal.connect(self.Tester)
print("'Launch' ends")
def Tester(self):
print("Tester Fired!!")
m = Main()
m.Do()
永远不会触发测试功能。
【问题讨论】:
【参考方案1】:您的代码的问题在于,您在将信号连接到插槽之前就发出了信号!像这样添加两个打印语句:
print("connecting the signal")
self.client.signal.connect(self.Tester)
print("signal connected")
您会注意到信号在连接之前就已发出!这就是插槽没有触发的原因。
【讨论】:
以上是关于信号未连接到方法的主要内容,如果未能解决你的问题,请参考以下文章