gpt4 book ai didi

c++ - 将 qml 信号连接到 Qt

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:38 28 4
gpt4 key购买 nike

我正在尝试在我的代码中使用 qml-grid View 。我正在尝试将它与我的 C++ 代码结合起来。我动态创建了一个 ListView 模型并传递了 qml 文件。它工作正常。但是,当我想将 Qml 信号连接到 Qt/c++ 代码时,我遇到了麻烦。我已经在我的 Qml 矩形中处理了 mouseArea 并从那里发出信号。

我正尝试按如下方式连接到信号:

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”作为有效指针。我哪里错了?

谢谢

最佳答案

你能试试这个吗? (这是来自 Qt Docs 的示例代码)

QObject *item = pQMLContainer->rootObject();
QObject::connect(item, SIGNAL(keyPressed()),
pTemp, SLOT(onKeyPressed()));

关于c++ - 将 qml 信号连接到 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947455/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com