PyKDE und threading -> Hilfe [SOLVED]

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
horo
User
Beiträge: 7
Registriert: Dienstag 18. Juli 2006, 01:52

Sonntag 23. Juli 2006, 14:25

Hallo,

da es anscheinend kein Tutorial/ HowTo für die PyKDE-Programmierung gibt, hoffe ich, dass ihr mir eine Frage beantworten könnt - ich steh' dabei im Moment ein wenig auf dem Schlauch:

Und zwar habe ich eine kleine PyKDE-Applikation (A), welche hauptsächlich als Systray dargestellt werden soll. Bei einem Klick auf das Icon erscheint ein KHTML-Part, der eine bestimmte Seite anzeigt.
Diese Seite will ich an eine Funktion/ Klasse (B) weiterleiten, die diese Seite regelmäßig updatet und auswertet und bei Bedarf das Icon wechselt. Diese Klasse leite ich von threading.Thread ab. Aber wo rufe ich die Instanz der Klasse in meiner PyKDE-Applikation auf? Ich habe jetzt testweise in (B) folgendes:

Code: Alles auswählen

class dwd(Thread):
    
    def __init__(self, parent):
        Thread.__init__(self)
        self.__parent = parent
    
    def run(self):
        time.sleep(5)
        self.__parent.changeIcon('icon2')
        time.sleep(5)
        self.__parent.changeIcon('icon3')
Wenn ich eine Instanz von dwd in (A).__init__ aufrufe, wird das Fenster erst aufgebaut, wenn beide sleeps "abgearbeitet" wurden, und es wird auch direkt icon3 dargestellt.
Ich will aber, dass die Applikation und das Icon aus (A) dargestellt werden, und im Hintergrund "gewartet" wird (später soll ja hier die Auswertung und Aktualisierung der Webseite stattfinden).

Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken und ihr könnt mir helfen.

TIA

Edit: Subject
Zuletzt geändert von horo am Sonntag 23. Juli 2006, 18:36, insgesamt 1-mal geändert.
horo
User
Beiträge: 7
Registriert: Dienstag 18. Juli 2006, 01:52

Sonntag 23. Juli 2006, 18:34

ARRGH!

Man sollte vor dem Posten vielleicht doch noch mal über seinen Source drüberschauen - um dann festzustellen, dass man nicht die start()-Funktion der instanziierten Klasse aufgerufen hat, sondern weil man in Gedanken vertieft war, dort direkt run() aufegerufen hat. :oops:

Sorry for the noise.

Ciao
Antworten