Так понимаю, здесь стоит рыть в сторону сигналов, но всё никак не разберусь, как и зачем их нужно подключать.
На данном примере хотелось бы устанавливать надпись на кнопку из QLineEdit, но чтобы всё это шло через Cycle, а не через методы MyWindow.
from PyQt4 import QtCore, QtGui from time import sleep import sys global i; i=0 def Cycle(): while(True): i+=1 print(i) sleep(1) class MyThread(QtCore.QThread): def __init__(self, parent=None): QtCore.QThread.__init__(self, parent) def run(self): Cycle() class MyWindow(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.button=QtGui.QPushButton("START") self.label=QtGui.QLabel("") self.txtName = QtGui.QLineEdit('', self) self.label.setAlignment(QtCore.Qt.AlignCenter) self.vbox=QtGui.QVBoxLayout() self.vbox.addWidget(self.button) self.vbox.addWidget(self.label) self.vbox.addWidget(self.txtName) self.setLayout(self.vbox) self.connect(self.button,QtCore.SIGNAL("clicked()"),self.on_clicked) self.mythread=MyThread() def setTextOnButton(self): self.button.setText(str(i)) def on_clicked(self): self.setTextOnButton() self.mythread.start() if __name__ == "__main__": app=QtGui.QApplication(sys.argv) window=MyWindow() window.resize(250, 50) window.show() sys.exit(app.exec_())