🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27744

PyQT wątki

#27744
From: zigi
Date: Thu, 14 Oct 2010 09:29
68 lines
3152 bytes
Witam
próbuje zahaczyć temat wielowątkowości w PyQT napisałem prosty stoper
oparty o 2 wątki. Pojawiły się nieoczekiwane problemy.
Gdy w grę wchodzi 1 wątek w głównej klasie stoper działa w/g
zamierzonego planu, w momęcie gdy tworzę drugi wątek tutaj klasa
Stoper().

Mimo stworzenia obiektu klasy zawierającej główne okno programu tutaj
klasa StoperWindow() i odwołaniu się do metody tej klasy nie uzyskuje
oczekiwanych resultatów.

Chciałbym aby informacje stopera były widoczne w polu tekstowym
zawartym w metodzie  insert_text() instancji obiektu klasy BaseWindow,
wyniki są przekazwane do tej metody jednak
nie pojawiają sie w polu teksowym.



class StoperWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
	QtGui.QWidget.__init__(self, parent)
	self.ui = Ui_MainWindow()
	self.ui.setupUi(self)
	
QtCore.QObject.connect(self.ui.actionStart,QtCore.SIGNAL("activated()"),
self.start_clock)
	return

    def start_clock(self):
	stoper = Stoper()
	stoper.start()
	return

    def insert_text(self, sekunda):
	self.ui.textEdit.insertPlainText(QtCore.QString("%s\n" % sekunda))
	app.processEvents()
	return


class Stoper(QThread):
     def __init__(self, parent = None):
	self.window_clock = StoperWindow()
        QThread.__init__(self, parent)
	return

     def run(self):
	self.easy_clock(0,0,0)
	return

     def easy_clock(self, sekunda, minuta, godzina):
	time.sleep(1)
	sekunda +=1
	if sekunda > 60:
	   minuta +=1
	   sekunda = 0
	if minuta > 60:
	   godzina +=1
	self.window_clock.insert_text(sekunda)
	self.easy_clock(sekunda, minuta, godzina)
        return



if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StoperWindow()
    myapp.show()
    sys.exit(app.exec_())
Technical Details
Message-ID: <51d0b88c-8d10-4c7b-a1e0-5cade3367aa9@g8g2000yqa.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!newsfeed00.sul.t-online.de!t-online.de!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!g8g2000yqa.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!newsfeed00.sul.t-online.de!t-online.de!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!g8g2000yqa.googlegroups.com!not-for-mail
From: zigi <cezar4846@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: PyQT wątki
Date: Thu, 14 Oct 2010 02:29:54 -0700 (PDT)
Organization: http://groups.google.com
Lines: 69
Message-ID: <51d0b88c-8d10-4c7b-a1e0-5cade3367aa9@g8g2000yqa.googlegroups.com>
NNTP-Posting-Host: 217.67.208.92
Mime-Version: 1.0
X-Trace: posting.google.com 1287048594 18873 127.0.0.1 (14 Oct 2010 09:29:54 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Thu, 14 Oct 2010 09:29:54 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: g8g2000yqa.googlegroups.com; posting-host=217.67.208.92; posting-account=KO8BxgoAAACCbIevmmXkvGNLzCGU-P0N
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Promedica24.pl; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 1.1.4322),gzip(gfe)
X-Original-Bytes: 3125
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit