SUAI-TaskPlanner-Contest / TaskPlanner

Client application for working with todos and syncing with CalDAV servers
MIT License
3 stars 2 forks source link

Создать окно Инструкции #56

Closed astronik00 closed 1 year ago

astronik00 commented 1 year ago

Design

Требования: UI дизайнер

Краткое описание

Необходимо спроектировать прототип окна Инструкций

Функциональные требования или иные документы

Окно инструкций должно состоять из двух последовательных окон (например связанных кнопкой "Далее", а на втором "Закрыть", после чего предполагается переход на главное меню со списком задач).

На первом окне должно быть:

На втором окне:

Обобщенное решение

Выходной результат

Файл окна qml. В MR загрузить скриншот работы.

slavakyrlan commented 1 year ago

Для создания окна с инструкцией по работе в приложении в QML можно использовать элементы, такие как Popup, Text и Button. Используя их в сочетании, мы можем создать простой и понятный интерфейс для пользователя.

Вот пример с четырьмя инструкциями:

import QtQuick 2.0
import QtQuick.Controls 2.0

ApplicationWindow {
    title: "Инструкция по работе в приложении"
    visible: true
    width: 400
    height: 400

    Button{
        id: buttonOne
        text: "Шаг 1"
        anchors.centerIn: parent
        onClicked: popupOne.open()
    }

    Popup {
        id: popupOne
        x: 100
        y: 100
        width: 200
        height: 200
        visible:true
        contentItem: Text {
            text: "Это Шаг 1 инструкции"
            wrapMode: Text.WordWrap
        }
        Button {
            text: "Далее"
            onClicked: {
                popupOne.close()
                popupTwo.open()
            }
        }
        onAccepted: {
            popupOne.close()
            popupTwo.open()
        }
    }

    Popup {
        id: popupTwo
        x: 100
        y: 100
        width: 200
        height: 200
        visible:false
        contentItem: Text {
            text: "Это Шаг 2 инструкции"
            wrapMode: Text.WordWrap
        }
        Button {
            text: "Далее"
            onClicked: {
                popupTwo.close()
                popupThree.open()
            }
        }
        onAccepted: {
            popupTwo.close()
            popupThree.open()
        }
    }

    Popup {
        id: popupThree
        x: 100
        y: 100
        width: 200
        height: 200
        visible:false
        contentItem: Text {
            text: "Это Шаг 3 инструкции"
            wrapMode: Text.WordWrap
        }
        Button {
            text: "Далее"
            onClicked: {
                popupThree.close()
                popupFour.open()
            }
        }
        onAccepted: {
            popupThree.close()
            popupFour.open()
        }
    }

    Popup {
        id: popupFour
        x: 100
        y: 100
        width: 200
        height: 200
        visible:false
        contentItem: Text {
            text: "Это Шаг 4 инструкции"
            wrapMode: Text.WordWrap
        }
        Button {
            text: "Готово"
            onClicked: {
                popupFour.close()
            }
        }
        onAccepted: {
            popupFour.close()
        }
    }
}

В данном примере мы использовали элементы Popup для отображения окон с инструкцией и Button для перехода между этими окнами. Когда пользователь нажимает на кнопку "Далее", текущее окно закрывается, а следующее открывается. Когда пользователь нажимает на кнопку "Готово" в последнем окне, инструкция закрывается.

Текст инструкции задается в элементе Text. Мы также использовали свойство wrapMode, чтобы расположить текст по ширине окна, чтобы он был читаемым.

Этот код создаст окно с четырьмя шагами инструкции, которая будет отображаться по клику на кнопку "Шаг 1".

denissidorenko1 commented 1 year ago

Примерно накидал дизайн двух окон. Ссылка

Снимок экрана 2023-05-16 в 00 10 57 Снимок экрана 2023-05-16 в 00 12 25
astronik00 commented 1 year ago

Первое окно выглядит отлично, а вот со вторым уже проблема. Я предполагала, что окно инструкций не меняет своего размера, мне кажется, это будет выглядеть достаточно аляповато, если у нас так будет скакать размер

denissidorenko1 commented 1 year ago

Да, согласен. Но длина инструкции может сильно отличаться, и в более коротких инструкциях будет пустое пространство (а места и так немного, на одном экране максимум 3 инструкции влезет наверно). Но можно и фиксированного размера, наверно.

astronik00 commented 1 year ago

Да, согласен. Но длина инструкции может сильно отличаться, и в более коротких инструкциях будет пустое пространство (а места и так немного, на одном экране максимум 3 инструкции влезет наверно). Но можно и фиксированного размера, наверно.

Я кстати еще не уверена, что получится сверстать вот такие 4 поля для пина. Нет, можно, но встроенного сигнала их обработки нет, теоретически тупо пока 4 поля не будут заполнены.

Например в винде пин устанавливается так: pin-kod_vmesto_parolja_v_windows_10_8.jpg

Можно сразу поставить формат окна 3:4 и растянуть этой формочкой.