我有
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/