Михаиллл
Михаиллл29 березня 2019 р. 09:31

Как в QML сделать переход между состояниями

состояние, QML

Добрый день.

На одной из страниц я сделал 3 состояния

Как сделать переключение из 1 состояния во 2 или 3 состояние и обратно при нажатии кнопки?

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

9
Evgenii Legotckoi
  • 29 березня 2019 р. 09:42

Добрый день.

Без кода тут даже подсказывать нечего.

    Михаиллл
    • 29 березня 2019 р. 10:40
    import QtQuick 2.4
    import QtQuick.Controls 2.2
    
    Item {
        id: element
        width: 400
        height: 600
        property alias page1ButtonMenu: page1ButtonMenu
    
        Button {
            id: page1Button0
            x: 66
            y: 172
            width: 128
            height: 128
            //font.capitalization: Font.AllUppercase
            //display: AbstractButton.TextOnly
            //topPadding: 5
            Image {
                id: image
                width: 130
                height: 130
                anchors.topMargin: 0
                anchors.leftMargin: 0
                anchors.rightMargin: 0
                anchors.bottomMargin: 0
                anchors.fill: parent
                source: "qrc:/images/images/close.png"
                fillMode: Image.Stretch
            }
        }
    
        Button {
            id: page1Button1
            x: 251
            y: 172
            width: 130
            height: 130
            Image {
                id: image1
                width: 130
                height: 130
                anchors.rightMargin: 0
                anchors.bottomMargin: 0
                anchors.fill: parent
                source: "qrc:/images/images/close.png"
                fillMode: Image.Stretch
            }
        }
    
        Button {
            id: page1ButtonMenu
            x: 150
            y: 479
            text: qsTr("МЕНЮ")
            font.pointSize: 18
        }
    
        Label {
            id: page1labe0
            x: 57
            y: 47
            width: 286
            height: 33
            text: qsTr("Выберете красный цвет")
            horizontalAlignment: Text.AlignHCenter
            font.pixelSize: 22
            font.family: "Verdana"
            font.weight: Font.Thin
        }
    
        Label {
            id: page1Label1
            x: 122
            y: 358
            width: 156
            height: 56
            text: qsTr("Побед: 0%")
            font.pointSize: 20
            horizontalAlignment: Text.AlignHCenter
        }
        states: [
            State {
                name: "State1"
    
                PropertyChanges {
                    target: image
                    source: "images/red.png"
                }
    
                PropertyChanges {
                    target: image1
                    source: "images//black.png"
                }
            },
            State {
                name: "State2"
    
                PropertyChanges {
                    target: image
                    source: "images//black.png"
                }
    
                PropertyChanges {
                    target: image1
                    source: "images//red.png"
                }
            }
        ]
    }
    
    
      Михаиллл
      • 29 березня 2019 р. 10:53

      и отсюда еще один вопрос: фактически 3 состояния, а в коде только 2. почему так? как с этим работать?

        Михаиллл
        • 31 березня 2019 р. 07:44

        как я понял нужно сделать третий states и вызвавть так states:имя состояния

          Михаиллл
          • 01 квітня 2019 р. 04:13

          Хотя почему то не работает.
          В файле main.qml прописал

              Loader
                        {
                            id: loader
                            anchors.fill: parent
                            source: "Page1.qml"
                            state: "Page1State1"
                        }
          

          но почему то состояние не меняется. Скажите пожалуйста почему так и как исправть.

            Михаиллл
            • 01 квітня 2019 р. 04:33
            • (відредаговано)

            а если я в описании страницы Page1 прописываю state: "Page1State2", то почему то не загружаются картинки

              Михаиллл
              • 01 квітня 2019 р. 04:39

              Извините, с картинками разобрался, но вот как включать нужное состояние из других частей проекта, пока не понятно

                Михаиллл
                • 01 квітня 2019 р. 04:59

                Также попробовал прикрепить переход к сигналу кнопки, но переход не работает

                    page1Button0.onClicked: {  //left button
                        state: "Page1State0"
                    }
                
                  Михаиллл
                  • 03 квітня 2019 р. 02:30
                  • Відповідь була позначена як рішення.

                  Вот так заработало

                      page1Button0.onClicked: {  //left button
                          state = "Page1State2"
                      }
                  

                    Коментарі

                    Only authorized users can post comments.
                    Please, Log in or Sign up
                    sf

                    C++ - Тест 004. Указатели, Массивы и Циклы

                    • Результат:90бали,
                    • Рейтинг балів8
                    МВ

                    Qt - Тест 001. Сигналы и слоты

                    • Результат:68бали,
                    • Рейтинг балів-1
                    ЛС

                    C++ - Тест 001. Первая программа и типы данных

                    • Результат:53бали,
                    • Рейтинг балів-4
                    Останні коментарі
                    A
                    ALO1ZE19 жовтня 2024 р. 08:19
                    Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                    ИМ
                    Игорь Максимов05 жовтня 2024 р. 07:51
                    Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                    d
                    dblas505 липня 2024 р. 11:02
                    QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                    k
                    kmssr08 лютого 2024 р. 18:43
                    Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                    АК
                    Анатолий Кононенко05 лютого 2024 р. 01:50
                    Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                    Тепер обговоріть на форумі
                    J
                    JacobFib17 жовтня 2024 р. 03:27
                    добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                    ИМ
                    Игорь Максимов03 жовтня 2024 р. 04:05
                    Реализация навигации по разделам Спасибо Евгений!
                    JW
                    Jhon Wick01 жовтня 2024 р. 15:52
                    Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
                    КГ
                    Кирилл Гусарев27 вересня 2024 р. 09:09
                    Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
                    F
                    Fynjy22 липня 2024 р. 04:15
                    при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

                    Слідкуйте за нами в соціальних мережах