Seite 1 von 1
[gelöst] Threads, Slots && ListWidget scrollToBottom
Verfasst: 22. Mai 2007 14:46
von C_R
Hi, ich arbeite derzeit an einem Log-Fenster. Ich möchte per CheckBox das Loggen aktivieren/ deaktivieren. Nun die frage: die Signale disconnect'en (Signal wird in seperatem Thread erzeugt) oder einfach das Log-Widget disabl'en?
grüße
Chris
Verfasst: 22. Mai 2007 15:00
von macman
Flag in deinem Thread setzen und Signale nur emittieren, wenn gesetzt.
Verfasst: 22. Mai 2007 15:13
von C_R
Ok, danke für den Tip.
Ich habe zusätzlich noch das Problem, dass scrollToBottom() nicht wie gewünscht funktioniert. Jedes mal wenn bei dem QListWidget ein Item hinzugefügt wird, rufe ich scrollToBottom() auf, der viewPort (oder Fokus, was auch immer) bewegt sich allerdings nur gelegentlich.. An CPU Auslastung liegt es nicht.
Verfasst: 23. Mai 2007 09:17
von C_R
Das mit dem Scrollen ist wichtig. Wäre supertoll wenn jemand schon Erfahrungen mit dem Problem gemacht hat.

Verfasst: 23. Mai 2007 10:03
von macman
Die Eventloop kommt zu selten dran, würde ich jetzt mal sagen. Pack mal ein processEvents direkt hinter dein scrollToBottom und wenn das Abhilfe zeigt, dann schau mal was an deinem Programm verkehrt ist.
Verfasst: 23. Mai 2007 12:42
von C_R
Bringt keinen Unterschied.
Verfasst: 23. Mai 2007 12:45
von macman
Tja, dann muss ein reproduzierbares Beispiel her. Mit raten kommen wir jedenfalls nicht weiter.
Verfasst: 23. Mai 2007 13:32
von C_R
Bitteschön, hoffe kannst damit was anfangen. Das Problem tritt auf jeden Fall auch auf (OS: Linux).
Es fällt auf, dass er immer an einer anderen Stelle steht (kannst den Button mehrmals klicken).
Verfasst: 23. Mai 2007 14:46
von macman
Weißt Du was das Problem ist? Dein Thread läuft zu schnell

Die Signale kommen so schnell, das keine Zeit für was anderes bleibt. Pack mal ein sleep(1); in die Schleife und es tut was es soll, ohne ein update() oder sonst was.
Verfasst: 23. Mai 2007 14:52
von C_R
ah Ok,

Dann wird sich das Problem - denke ich - von ganz alleine Lösen, wenn der Thread erstmal ordentlich was zu tun bekommt
Danke für die Mühen!