找到不是孩子的QObject

时间:2016-04-28 17:21:57

标签: c++ qt qml

我有一个带有一个C ++ QObject的C ++ / QML应用程序,我想从中更改托盘图标。托盘图标在main.cpp中创建,因为它需要QQmlApplicationEngine的根对象。

我的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获取托盘图标并在我的模型中再次搜索它。但是,如果我无法访问根对象并且托盘图标也不是我的孩子,我该如何搜索呢?

1 个答案:

答案 0 :(得分:0)

QSystemTrayIcon公开给QML,就像对待任何其他对象一样。最有可能的是,您可以将托盘图标作为根上下文属性添加到QML。

相关问题