0

我的 Symbian (Belle) main.qml 具有以下标准:

window.pageStack.depth <= 1 ? Qt.quit() : window.pageStack.pop()

当按下后工具栏按钮时,按下时会关闭我的应用程序。我想知道当我按下设备上的菜单按钮时应该使用什么来最小化(或隐藏)我的应用程序?我搜索了一个解决方案,但似乎没有什么是正确的。

编辑:

你能不能告诉我应该如何实现它qml。

4

3 回答 3

1

要在 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()
}
于 2012-05-21T06:21:09.133 回答
0

我最终使用了 QMLViewer 的“lower()”函数

QObject::connect(rootObject, SIGNAL(hide()), &viewer, SLOT(lower()));

然后只需将其连接到 qml 中的 lower() 函数,然后在按下后退按钮时调用它。ShowMinimised 让窗口消失。

于 2012-05-26T16:00:37.047 回答
0

用于mainwindow.setWindowState(Qt::WindowMinimized)最小化您的应用程序。

于 2012-05-20T14:00:24.653 回答