我想在我的代碼中使用qml網格視圖。我試圖將它與我的C++代碼結合起來。 我已經動態創建了一個列表視圖模型,並通過qml文件傳遞。它工作正常。 但是,當我想要將Qml信號連接到Qt/C++代碼時,我遇到了麻煩。我在我的Qml-rectangle中處理了mouseArea並從那裏發出信號。qml信號連接到Qt
我試圖連接到信號如下:
QDeclarativeView *pQMLContainer = NULL;
TempWidget *pTemp = new TempWidget();
pQMLContainer = new QDeclarativeView(pTemp);
pQMLContainer->setResizeMode(QDeclarativeView::SizeRootObjectToView);
pQMLContainer->rootContext()->setContextProperty("imgModel", createModel());
pQMLContainer->setSource(QUrl("../Temp/qml/gridview-example.qml"));
QObject *rootObject = dynamic_cast<QObject*>pQMLContainer->rootObject();
QObject::connect(rootObject, SIGNAL(keyPressed()), pTemp, SLOT(onKeyPressed()));
當連接語句運行時,我得到一個錯誤:無法連接到「空」的對象。 在調試時,我發現我永遠不會得到「rootObject」作爲有效的指針。 我哪裏錯了?
謝謝
不需要'dynamic_cast' - 根'QGraphicsObject'是'QObject'。 – laalto 2011-05-10 10:39:30