вторник, 31 мая 2011 г.

Как правильно делать треды в PyQT4

http://www.linux.org.ru/forum/development/1529306
#!/usr/bin/env python

# Вот примерно так оно делается.

import sys
from PyQt4.QtCore import QEvent, QThread
from PyQt4.QtGui import QApplication, QTextEdit

class MyEvent(QEvent):
def __init__(self, data):
QEvent.__init__(self, QEvent.User)
self.data = data

class Timer(QThread):
def __init__(self, event_receiver):
QThread.__init__(self)
self.event_receiver = event_receiver
self.time = 0
def run(self):
while True:
self.time += 1
QApplication.postEvent(self.event_receiver, MyEvent(self.time))
self.sleep(1)

class Display(QTextEdit):
def customEvent(self, event):
if isinstance (event, MyEvent):
self.append('time = %i' % event.data)

a = QApplication(sys.argv)
display = Display()
display.show()

timer = Timer(display)
timer.start()

sys.exit(a.exec_())

Комментариев нет:

Отправить комментарий