我有一个带有一个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
获取托盘图标并在我的模型中再次搜索它。但是,如果我无法访问根对象并且托盘图标也不是我的孩子,我该如何搜索呢?
答案 0 :(得分:0)
将QSystemTrayIcon
公开给QML,就像对待任何其他对象一样。最有可能的是,您可以将托盘图标作为根上下文属性添加到QML。