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!
- 4881 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
"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
- A hozzászóláshoz be kell jelentkezni
Mi nem mukodott?
----------------------
while (!sleep) sheep++;
- A hozzászóláshoz be kell jelentkezni
Kár, hogy nem python példák. Így egy kicsit nehezebb megértenem :D
- A hozzászóláshoz be kell jelentkezni
Kössz a segítséget, megpróbálom.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ez már használhatóvá teszi. Kellene a szálkezelés, de ha nem tudom megoldani akkor marad ez. Köszönöm a segítséget!
- A hozzászóláshoz be kell jelentkezni
off: pysideot vagy pyqt-t hasznalsz?
- A hozzászóláshoz be kell jelentkezni
pyqt
- A hozzászóláshoz be kell jelentkezni