s
11 февраля 2019 г. 13:12

Qt/QML/Android(navigation button)

Можно обрабатывать back кнопку так как работает кнопка home? Если можно то как?? Это нужно обрабатываться через JNI? Буду благодарен за любую помощь.

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
3

Нет, JNI тут не потребуется, по моему мнению.

Ну вот один возможный вариант

Rectangle {
focus: true // important - otherwise we'll get no key events

Keys.onReleased: {
    if (event.key == Qt.Key_Back) {
        console.log("Back button captured - wunderbar !")
        event.accepted = true
    }
}
}

вот второй

ApplicationWindow 
{
  onClosing: {
    close.accepted = false
    if (contextMenuManager.menuVisible)
        contextMenuManager.menuVisible = false
  }
}

и третий

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.1

ApplicationWindow {
id: appWindow
visible: true
width: 640
height: 480
title: qsTr("Hello World")

ListModel {
    id: longModel

    Component.onCompleted: {
        for ( var i=1; i<=100; i++ )
            append({"testName": i})
    }
}


ListView {
    anchors.fill: parent
    id: listView
    model: longModel

    delegate:
        Rectangle {
            height: 80
        width: parent.width

        Text {
            id: textComponent
            text: testName
        }
        Keys.onReleased: {
            if (event.matches(StandardKey.Back)) {
                console.log("back caught by delegate");
                event.accepted = true;
            }
        }
    }

    focus: true
    Keys.onReleased: {
        if (event.matches(StandardKey.Back)) {
            console.log("back caught by listview");
            event.accepted = true;
        }
    }

}
}
s

Когда мы пишем event.accepted = true это значит шо твоя application на закрывается а дальше работает на foreground, но мой вопрос в другом можно чтоб кнопка назад не убивала application, а сделала minimize??

но мой вопрос в другом можно чтоб кнопка назад не убивала application, а сделала minimize??

Вам следовало бы сразу соответствующим образом сформулировать вопрос. Разработчики приложения в итоге решают, как поступать и дефолтное поведение может быть переопределено. Есть приложения в которых вообще происходит logout клиента и ничего больше.

Думаю, что тут уже нужно копать в сторону JNI, с фоновой работой всё обстоит несколько сложнее. Требуются настройки AndroidManifest. Здесь не подскажу.

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
D
16 августа 2019 г. 11:58
Damir

C++ - Тест 003. Условия и циклы

  • Результат:92баллов,
  • Очки рейтинга8
D
16 августа 2019 г. 11:46
Damir

C++ - Тест 005. Структуры и Классы

  • Результат:75баллов,
  • Очки рейтинга2
u
14 августа 2019 г. 13:55
unrealproro

C++ - Тест 005. Структуры и Классы

  • Результат:83баллов,
  • Очки рейтинга4
Последние комментарии
19 августа 2019 г. 6:41
Андрей Янкович

это проблема дистрибутива, попробуйте установить через пакетный менеджер snap Суть проблемы: libQt5Core которая лежит в дистрибутиве требует версию glibc >= 2.25 у вас видимо …
b
18 августа 2019 г. 5:09
bbb116

cqtdeployer /home/aleks/CQtDeployer/bin/cqtdeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /home/aleks/CQtDeployer/lib/libQt5Core.so.5) linux mint …
D
17 августа 2019 г. 8:04
Damir

github ChekableTView Правой групповая смена значения при перетаскивании левой как обычно.
Сейчас обсуждают на форуме
19 августа 2019 г. 10:29
Алексей Внуков

я в дороге, по тому примеру что в есть выше вам чтоб заработало нужно примерно следующее ListModel{ id: list_model } в ListView добавить model:list_model там где кноп…
19 августа 2019 г. 8:47
Pavel K.

bool YourClass::chekIfEmpty(const QString& table) { return getCount(table) == 0;}int YourClass::getCount(const QString& table, const QString& where) { QString command =…
19 августа 2019 г. 8:29
Pavel K.

посмотрите тут , практически тоже самое делал(пробегал по документу). А так в принципе : QFile file(Path);if(file.exist){ file.open(QIODevice::WriteOnly); // ReadWrite for…
19 августа 2019 г. 2:39
grig_p

Здравствуйте! Хотелось бы в своем приложении сделать цетрализованную обработку исключительных ситуаций для их логирования. Переопределил метод notify(): static const int EC_MAINLOOP…
15 августа 2019 г. 2:19
Михаиллл

Плюсы и qml отличаются, с++ логичней
Ищу работу?
14,000.00 руб. - 40,000.00 руб.
Разработчик Qt
Annino, Moscow Oblast, Russia
5,000.00 руб. - 15,000.00 руб.
Дизайнер
Moskovskiy, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB