geograman hat geschrieben:Wieso kann ich nicht von einer andere Klasse aus auf die GUI Klasse zu greifen um dort zb ein Textfeld zuverändern?
Heißt das jetzt das jede Veränderung der Widget in der GUI Klasse selbst stehn muss ?
Nicht GUI-
Klasse sonder Thread! Im Normalfall erstellst du in deiner Main ein Widget, machst ein show(), und startest die Event-Loop mittels QApplication::exec(). Das ist dein Haupt-Thread - der Gui-Thread.
Startest du nun neu Threads, die irgend etwas berechnen sollen, und die Gui nicht einfrieren darf, sind diese Nebenthreads, und dürfen nichts zeichnen. Qt hat diese Restriktion geschaffen, da z.B. die WinAPI sowas zulässt, man aber 100% irgend wo einen ziemlichen Crash baut, und somit selbst schauen muss, dass nur in einem Thread gezeichnet wird.
Aber wenn es sich eh nur um WinAPI-Sachen dreht, hast du eh gute Aussichten, nix mittels Qt zu zeichnen

(K.A. wie es aussieht, wenn du dann mit QinAPI was malst, nehm aber an das geht auch irgend wo in die Hose - hab aber nur Erfahrung mit Linux...)
Dann ist es sicher möglich eigene Signals aus deinem Neben-Thread loszuschicken, wenn ein Ereignis dies erfordert. Auf dieses kannst du im Gui-Thread sehr wohl reagieren, und dort dann etwas zeichnen.