gpt4 book ai didi

python - 如何从一个类发出 Qtsignal,从而导致在 pyqt 中从其父类发出 Qtsignal

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:33 26 4
gpt4 key购买 nike

我有一个要求,我的执行将在线程中发生,我想从该线程向主类发出信号。下面是我的示例代码片段,我在其中创建了 MainClass 的实例并将其分配给 temp。其中 MainClass 在内部连接到线程 Thread1 ,实际工作将在该线程发生。当信号从 Thread1 发出时,我希望执行从 temp

连接的 signalcalled 定义

代码片段

class Thread1(QtCore.QThread):

ThreadSignal = QtCore.pyqtSignal(str)

While True:

#some statments
if Condition:
ThreadSignal.emit('Yes')
else:
ThreadSignal.emit('No')

class MainClass(QtCore.QObject):

MainSignal = QtCore.pyqtSignal(str)

Testinstance = Thread1()

def signalcalled(s):

print s

if __name__=='__main__':
app = AtGui.QApplication(sys.argv)
temp = MainClass()
temp.MainSignal.connect(signalcalled)
sys.exit(app.exec()_)

最佳答案

这应该有效:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from PyQt4 import QtCore, QtGui

class myThread(QtCore.QThread):
threadSignal = QtCore.pyqtSignal(str)

def __init__(self, parent=None):
super(myThread, self).__init__(parent)

def run(self):
while True:
if True:
self.threadSignal.emit('Yes')

else:
self.threadSignal.emit('No')

break

class myMainClass(QtCore.QObject):
mainSignal = QtCore.pyqtSignal(str)

def __init__(self, parent=None):
super(myMainClass, self).__init__(parent)

testInstance = myThread(self)
testInstance.threadSignal.connect(self.mainSignal.emit)
testInstance.start()

def signalcalled(s):
print s

if __name__ == "__main__":
import sys

app = QtGui.QApplication(sys.argv)
main = myMainClass()
main.mainSignal.connect(signalcalled)
sys.exit(app.exec_())

关于python - 如何从一个类发出 Qtsignal,从而导致在 pyqt 中从其父类发出 Qtsignal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com