我想連接到來自C++的對象的Component.onCompleted
信號。我應該使用什麼語法?如何連接到C++的連接信號?
0
A
回答
0
所以,你可以使用此代碼去Component.completed和Component.destruction信號接入:
QObject* attached_component = qmlAttachedPropertiesObject<QQmlComponent>(qml_component);
QObject::connect(attached_component, SIGNAL(destruction()), this, SLOT(onDestruction()));
QObject::connect(attached_component, SIGNAL(completed()), this, SLOT(onCompleted()));
qml_component是你的QML組件的指針,「這」是一個具有onDestruction和onCompleted插槽對象。 也許這是一個黑客,但現在它的工作原理(QT 5.8 VS2013)
0
一種解決方案是從QML調用C++ funtion:
Component.onCompleted:Qml_utils.connect_qmlobject(this)
C++代碼
Q_INVOKABLE void qml_utils::connect_qmlobject(QObject*obj) {
//do something with QML QObject:
connect(obj, SIGNAL(destroyed(QObject*)),
this,SLOT(disconnect_qmlobject(QObject*)));
}
相關問題
- 1. C++連接信號
- 2. 如何連接GtkAction信號?
- 3. 如何連接QDBusConnection信號
- 4. 將信號QML連接到C++(Qt5)
- 5. QML和C++連接到信號
- 6. qml信號連接到Qt
- 7. Qt:C++信號到qml連接
- 8. 如何將信號連接到插槽
- 9. phantomJS信號連接到信號
- 10. QML信號連接
- 11. 連接(的QObject *,信號(信號()),算符)不QT5連接
- 12. 如何將C++中的信號連接到具有參數
- 13. 阻止連接到升壓信號的所有連接
- 14. 連接到現有的wi-fi信號
- 15. 連接到帶有qdbus的信號
- 16. 嘗試連接QTcpServer到GUI的信號
- 17. QObject ::連接沒有連接信號到插槽
- 18. 如何連接QNetworkReply信號進展QT
- 19. Qt連接信號插槽
- 20. Qt連接信號插槽
- 21. 解除連接信號
- 22. pyqt QTableWidgetItem連接信號
- 23. 無法連接QT信號
- 24. 連接信號和在QT
- 25. Gtkbuilder連接信號組織
- 26. pyqt自動連接信號
- 27. PyQT將λ函數連接到信號
- 28. Django-PayPal將信號連接到操作
- 29. django:連接到現有信號失敗
- 30. Qt將信號連接到插槽
你如何創建組件?從C++還是QML? – m7913d
我認爲這沒有道理。例如,當您使用'QQmlApplicationEngine :: load()'創建QML樹時,將在連接到信號之前執行'Component.onCompleted'。無論如何 - 你可以爲你的對象創建一些代理信號,從Component.onCompleted調用,因此連接到C++的這個信號。 – folibis
通過setContextProperty()使QML可以訪問槽對象,並直接從Component.onCompleted處理程序調用槽 –