我有一个C++/QML应用程序和一个C++ QObject
,我想从中更改托盘图标。托盘图标在main.cpp
中创建,因为它需要此对象的QQmlApplicationEngine
的根对象。查找不是儿童的QObject
我main.cpp
看起来是这样的:
qmlRegisterType<Model>("Model", 1,0, "Model");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *root = 0;
if (engine.rootObjects().size() > 0)
{
root = engine.rootObjects().at(0);
[...]
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(root);
trayIcon->setObjectName("TrayIcon");
[...]
}
而且我有一个名为QObject
模型,我从QML代码中实例化。
一切工作正常,但现在我想从模型中更改托盘图标的图标。看来我的模型没有父级,我的想法是通过给它一个objectName
并在我的模型中再次搜索它来获取托盘图标。但是如果我无法到达根对象并且托盘图标也不是我的孩子,我该如何搜索它?
如果它不在根对象树中,则无法找到它。按照库巴的建议并将其作为上下文属性公开。 – dtech