QT4 szálkezelés

Sziasztok!

Akadt egy kis problémám. Megpróbálom érthetően leírni.

Szóval, van egy gui, amin található két gomb és egy textedit. Az egyik gombot megnyomva egy másik szálon indulna egy ciklus, ami folyamatosan bővítené a textedit tartalmát (insertPlainText).

A gondom az, hogy bármit is csinálok, az ablak egyszerűen kifagy míg ez a ciklus fut. A tartalom is csak utólag a ciklus befejeztével jelenik meg.

Ha lehet valami példával is dobjatok meg (főleg python, de C++ is megteszi). Előre is köszönöm mindenkinek a segítséget!

Hozzászólások

GUI-t csak főszálból kezelhetsz, ha egy új szálból próbálod bizgetni, általában nem jól sül el.

Próbáld ki, hogy a főszálban lévő SLOT frissíti a GUI-t, ha a mellékszálban elég szöveg összejött, és a szál kiadja a SIGNAL-t, benne a szöveg tartalmával. A szálak közötti helyes adatátvitelt SIGNAL/SLOT esetében a Qt automatikusan kezeli helyetted.

--
The Elder Scrolls V: Skyrim

"A szálak közötti helyes adatátvitelt SIGNAL/SLOT esetében a Qt automatikusan kezeli helyetted." -> Barcsak ugy lenne. Nekem neha kellett Qt::DirectConnection-t hasznalni a connecthez.

H_Miki:
Itt sok szalkezelesi pelda van egyebkent, ha tenyleg arra van szukseged:
http://doc.qt.nokia.com/latest/examples-threadandconcurrent.html

http://djszapi.homelinux.net

Ha nem akarod nagyon beásni magad a szálkezelésbe, akkor x feldolgozott elemenként hajtsd végre a QApplication::processEvents() függvényt.