【发布时间】:2020-04-11 18:49:07
【问题描述】:
我想获取线程(worker)上的信号发出的值,信号有两个参数(两个列表,或列表和 int)。它的工作,信号有 2 个参数。但是当我试图在主窗口中获取这两个列表的值时,我只得到一个列表。那么如何从一个信号中获取主窗口中的两个列表呢?
class Worker(QThread):
authResult = QtCore.pyqtSignal((list,list))
def __init__(self):
super(Worker, self).__init__()
self.flag = True
self.s="vide"
def run(self):
self.auth()
def auth(self):
c=0
Malist=[]
k=c+600
while c<10:
c+=1
time.sleep(0.3)
print(c)
Malist.append(k)
k=k+1
Malist2=['a','b','c']
self.authResult.emit( Malist,Malist2)
这是包含按钮的主窗口,我只想打印两个列表 Malist 和 Malist2 的值
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(300, 200))
self.setWindowTitle("PyQt button example ")
pybutton = QPushButton('Click me', self)
pybutton.clicked.connect(self.clickMethod)
pybutton.resize(100,32)
pybutton.move(50, 50)
pybutton2 = QPushButton('Afficher !!', self)
pybutton2.clicked.connect(self.afficher)
pybutton2.resize(60,32)
pybutton2.move(160, 50)
def clickMethod(self):
self.thread=Worker()
self.thread.authResult.connect(self.handl)
self.thread.start()
print(self.thread.s)
def handl(self,result):
print(type(result))
print(result)
print("Cc!!")
结果是: [600、601、602、603、604、605、606、607、608、609] 仅显示列表 1。 有什么帮助吗?
【问题讨论】:
标签: python user-interface pyqt5 signals-slots qthread