2017-05-03 5 views
-2

Ich habe ein qt GUI-Projekt, und ich muss Threads verwenden.QThreads mit Parametern übergeben

Ich habe viel googlen viel auf der Suche nach einer Möglichkeit, Parameter an QThread übergeben, und ich konnte keinen Weg finden.

Kennt jemand eine Möglichkeit, das zu tun? Oder verwenden Sie eine andere Art von Threads, wenn QThreads nicht die Lösung ist.

Danke Jungs!

+0

googeln für "qthread den richtigen Weg" zuerst, dann Google für "qt slot Objekt Parameter übergeben" – user3528438

+0

Eine mögliche Lösung ist, Signale und Steckplätze zu verwenden – eyllanesc

+0

Im Allgemeinen müssen Sie nichts mit einem 'QThread' tun anders als ohne Änderungen zu verwenden. Es werden keine "Parameter" benötigt. –

Antwort

0

Es gibt grundsätzlich zwei Methoden QThreads zu verwenden:

  1. Unterklasse QThread und reimplementieren die run Methode
  2. Unterklasse QObject und bewegen Sie dieses Objekt zu einem QThread mit QObject::moveToThread

Und wenn Sie möchten, zu "Parameter an QThread übergeben", dann ist es ruhig unkompliziert mit beiden Methoden.

  1. Sie können Mitglied-Variable Ihrer Unterklasse von allen Methoden Ihrer Unterklasse einschließlich der neu implementierten run Methode zugreifen. Ich empfehle Ihnen, lesen Sie diese http://doc.qt.io/qt-5/qthread.html#details für mehr Details
  2. der Schlitz des Arbeiter-Objekt, das in einem anderen Thread ausgeführt werden, so viele Argument nehmen können, wie Sie

wollen.

Denken Sie immer daran, dass QThread selbst kein Thread ist, sondern eine Klasse zur Verwaltung von Threads.

Verwandte Themen