我有
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject* root = engine.rootObjects().at(0);
QAction *restoreAction = new QAction(QObject::tr("&Restore"), root);
root->connect(restoreAction, SIGNAL(triggered()), root, SLOT(showNormal()));
在主体上,它起作用。但是,我也想在此呼叫
showNormal
而不是在插槽中,我可以找到它来自哪里,它又如何工作?最后,我试图在单击托盘图标时显示我的窗口
root->connect(trayIcon, &QSystemTrayIcon::activated,
[root] (QSystemTrayIcon::ActivationReason reason) {
switch (reason) {
case QSystemTrayIcon::Trigger:
case QSystemTrayIcon::DoubleClick:
((QWidget*)root)->showNormal();
到目前为止,它不起作用
最佳答案
您应该将root
转换为QQuickWindow
QQuickWindow *root = qobject_cast<QQuickWindow *>(engine.rootObjects().at(0));
root->showNormal();
关于c++ - 如何在主功能中从SLOT调用showNormal?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28294607/