2010-10-13 18 views

Antwort

37

Ja .. Slots sind nur normalen Funktionen und Sie sie direkt anrufen können ..

Von docs,

Ein Schlitz wird aufgerufen, wenn ein Signal verbunden dazu wird emittiert. Slots sind normale C++ - Funktionen und können normal aufgerufen werden; ihre einzige Besonderheit ist, dass Signale mit ihnen verbunden werden können.

+4

Deshalb mag ich gute Dokumentation: explizit und einfach. – Klaim

+0

Ich weiß, dass sie normal aufgerufen werden können. Ich lese auch die Dokumentation. Aber die Frage ist mehr ein Design als eine C++ Frage. – Daniel

+6

Problem ist Multithreading. Wenn Sie einen Slot direkt aufrufen, könnte sich der ausführende Thread von dem ausführenden Thread unterscheiden, den Sie connect() verwendet hätten (wenn das Objekt des Slot zuvor in einen anderen Thread verschoben wurde). Siehe auch http://stackoverflow.com/questions/1144240/qt-how-to-call-slot-from-custom-c-code-running-in-a-different-thread – Trilarion

Verwandte Themen