Ich fand mich in der Notwendigkeit, einen Steckplatz direkt aufrufen zu müssen. Ich denke, es ist völlig in Ordnung, es zu tun, solange es in Ihrem Design sinnvoll ist. Was denken Sie?In Qt (4.6), ist es in Ordnung, Schlitze direkt anzurufen?
Dank
Ich fand mich in der Notwendigkeit, einen Steckplatz direkt aufrufen zu müssen. Ich denke, es ist völlig in Ordnung, es zu tun, solange es in Ihrem Design sinnvoll ist. Was denken Sie?In Qt (4.6), ist es in Ordnung, Schlitze direkt anzurufen?
Dank
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.
Deshalb mag ich gute Dokumentation: explizit und einfach. – Klaim
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
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