gpt4 book ai didi

qt - 从 QML 到 C++ 插槽的信号,找不到 QML 信号

转载 作者:行者123 更新时间:2023-12-04 13:58:35 26 4
gpt4 key购买 nike

我在 QML 中收到一个信号,我想连接到一个在 C++ 中定义的插槽。但是我的代码失败了,我收到了错误:

QObject::connect: No such signal QDeclarativeContext::sent() in ../qt_cpp/mainwindow.cpp:66

这是一段 C++ 代码片段:

message_reading test;
QDeclarativeView tempview;
tempview.setSource(QUrl("qrc:/qml/media_screen.qml"));
QObject *item = tempview.rootContext();
QObject::connect(item, SIGNAL(sent()),
&test, SLOT(readMediaJSONDatabase(QString&)));

这是一个 QML 代码片段:

Image {
id: bluetooth
source: "images_mediahub/footer_icons/bluetooth_normal.png"
signal sent(string msg)
MouseArea {
anchors.fill: parent
onClicked: {
bluetooth.sent(Test.medialibrarydb.toString())
info_load.source="./bluetooth.qml"
}
}
}

最佳答案

connect 行中的 SIGNAL 宏调用必须使用 SIGNAL(sent(QString)) 显式通知参数。

此外,信号是由创建的对象发出的,但您提供的代码片段却试图在上下文对象中连接它。您需要以下内容:

QObject *tempitem = tempview.rootObject();

有一个 complete example在文档中涵盖了这一点。

关于qt - 从 QML 到 C++ 插槽的信号,找不到 QML 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476267/

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