我的 Symbian (Belle) main.qml 具有以下标准:
window.pageStack.depth <= 1 ? Qt.quit() : window.pageStack.pop()
当按下后工具栏按钮时,按下时会关闭我的应用程序。我想知道当我按下设备上的菜单按钮时应该使用什么来最小化(或隐藏)我的应用程序?我搜索了一个解决方案,但似乎没有什么是正确的。
编辑:
你能不能告诉我应该如何实现它qml。
要在 Symbian 中以正确的方式最小化您的主要寡妇,您应该执行以下步骤。第 1 步:为 QDeclarativeView 创建包装器
#include <QtCore/QPointer>
#include <QtDeclarative/QDeclarativeView>
#ifdef Q_OS_SYMBIAN
# include <e32base.h>
# include <w32std.h>
# include <apgwgnam.h>
# include <coedef.h>
# include <coecntrl.h>
# include <coemain.h>
#endif
class View : public QObject {
Q_OBJECT
// ...
public:
// ...
Q_INVOKABLE void showMinimized() {
#ifdef Q_OS_SYMBIAN
RWindowGroup* wg = &CCoeEnv::Static()->RootWin();
wg->SetOrdinalPosition(-1);
#else
view_->showMinimized();
#endif
}
// ...
private:
QPointer<QDeclarativeView> view_;
};
然后将此视图用作 QML 上下文属性:
QScopedPointer<QDeclarativeView> view(new QDeclarativeView());
view->rootContext()->setContextProperty("applicationWindow", new View(view.data(), view.data()));
然后您的 QML 代码将如下所示:
tools: ToolBarLayout {
ToolButton {
flat: true
iconSource: "qrc:/images/tbar-back.svg"
onClicked: applicationWindow.showMinimized()
}
我最终使用了 QMLViewer 的“lower()”函数
QObject::connect(rootObject, SIGNAL(hide()), &viewer, SLOT(lower()));
然后只需将其连接到 qml 中的 lower() 函数,然后在按下后退按钮时调用它。ShowMinimised 让窗口消失。
用于mainwindow.setWindowState(Qt::WindowMinimized)
最小化您的应用程序。