[gelöst] Threads, Slots && ListWidget scrollToBottom

Alles rund um die Programmierung mit Qt
Antworten
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

[gelöst] Threads, Slots && ListWidget scrollToBottom

Beitrag 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
Zuletzt geändert von C_R am 23. Mai 2007 14:54, insgesamt 3-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Flag in deinem Thread setzen und Signale nur emittieren, wenn gesetzt.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag 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.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Das mit dem Scrollen ist wichtig. Wäre supertoll wenn jemand schon Erfahrungen mit dem Problem gemacht hat. :?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Bringt keinen Unterschied.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Tja, dann muss ein reproduzierbares Beispiel her. Mit raten kommen wir jedenfalls nicht weiter.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag 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).
Dateianhänge
example.zip
(5.09 KiB) 133-mal heruntergeladen
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag 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!
Antworten