1
어떻게 QThread가 QLineEdit에서 텍스트를 가져올 수 있습니까? QThread에서 GUI 요소 값 가져 오기
내가이 QLineEdit 값을 얻을 수self.t.updateSignal.connect(self.inputedittext.text)
을 시도하지만 오류 얻을 :
TypeError: unsupported operand type(s) for +=: PyQt4.QtCore.pyqtBoundSignal' and 'int'
또는 내가 메시지를 얻을 :
bound signal updateSignal of xxxxxx at 0x02624580
코드 :
import sys
import time
from PyQt4 import QtGui, QtCore
class mc(QtGui.QWidget):
def __init__(self):
super(mc,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QThread')
self.inputedittext = QtGui.QLineEdit()
self.startbutton = QtGui.QPushButton('start')
self.stopbutton = QtGui.QPushButton('stop')
self.textlable = QtGui.QLabel('0')
lv1 = QtGui.QVBoxLayout()
lb1 = QtGui.QHBoxLayout()
lb1.addWidget(self.inputedittext)
lb1.addWidget(self.startbutton)
lb1.addWidget(self.stopbutton)
lb2 = QtGui.QHBoxLayout()
lb2.addWidget(self.textlable)
lv1.addLayout(lb1)
lv1.addLayout(lb2)
self.setLayout(lv1)
self.t = test_QThread()
self.t.updateSignal.connect(self.inputedittext.text)
self.startbutton.clicked.connect(self.start_t)
self.connect(self.t,QtCore.SIGNAL('ri'),self.setlable)
def setlable(self,i):
self.textlable.setText(i)
def start_t(self):
self.t.start()
# print(self.inputedittext.text())
class test_QThread(QtCore.QThread):
updateSignal = QtCore.pyqtSignal(QtCore.QString)
def __init__(self):
QtCore.QThread.__init__(self)
def run(self):
i = self.updateSignal
# i=0
go = True
while go:
i+=1
time.sleep(1)
self.emit(QtCore.SIGNAL('ri'),str(i))
print('run...')
def main():
app = QtGui.QApplication(sys.argv)
mw = mc()
mw.show()
app.exec_()
if __name__ == '__main__':
main()
에코모 감사합니다 그것은 작동하지만 그 GUI를 동기화하고 QThread 신호는 GUI에서 가능합니다 self._count 값을 제공합니까? 이 QThread가 7 번 – user1484400
@ user1484400을 실행해야합니다. 미안 해요, 당신이 무엇을 요구하는지 이해가 안됩니다. – ekhumoro
내 잘못이야, 네 게시물은 대답이야! – user1484400