Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
5 июля 2018 г. 14:33

StackView и загрузка страниц

Всем привет.
У меня тут возникла проблема в реализации функционала с StackView который работает в Drawer.
Принцип такой: открывается над main Drawer у которого распологаются элементы, все они в StackView. Когда мы выбираем один из элементов то плавно появляется то что было заложено в нем.
Но проблема в том что я не могу правильно расположить появление этих элементов. И почему то при загрузке частей StackView как то дерганьем отображается все.

Задумка такая что в Drawer есть ControlView который представляет из себя панель типа тулбара которая дает возможность вернуться обратно. И вот как раз загружаемые элементы должны появится под этой панелью. Но они почему то в стороне располагаются или над панелью.
Ниже ссылка на мой дропбокс где сами файлы с кодом и скрины.
Надеюсь кто то сможет подсказать где у меня ошибка. Заранее спасибо.
https://www.dropbox.com/sh/68hjmde6k1yelde/AAD9fNg5uBP1uplZdA67G5eCa?dl=0

7

Больше похоже на то, что в файлах MenuContent* нет якорей, поэтому и не растягивается нормально, если попробовать определить якоря на парента, то можно начать работать адекватно.

0
Может это и правда, но вот если я этот MenuContent1 делаю такого вида


Item {
    id: root



    ColumnLayout
    {
        spacing: 2


        RadioButtonGroup {
            id: radioButtons
            anchors.top: parent.top
        }

        LanguageItem {
            id: languageItem
            anchors.top: radioButtons.bottom
        }

        SystemTrayCheckBox {
            id: sytemTray
            anchors.top: languageItem.bottom
        }
    }
}




То получаю результат как на скрине
И вот такую ошибку

qrc:/MenuContent1.qml:25:9 : QML Rectangle: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

То есть получается якоря как бы тут не используются.


0

Ну так якоря нужно внутри Item и ColumnLayout раскидывать, а не внутри дочерних элементов ColumnLayout

0
Добавил
    anchors.top: parent.top
    anchors.bottom: parent.bottom
    anchors.right: parent.right
    anchors.left: parent.left


Результат такой же. Новый скрин нету смысла делать. Так что это не помогает. Раньше пробовал, и сейчас решил перепроверить.
Это не вариант.

0
В общем для теста подсунул просто пару Rectangle разных цветов
Rectangle
        {
            id: rec1

            color: "red"
            height: 20
            width: 50
        }

        Rectangle
        {
            id: rec2

            color: "blue"
            height: 20
            width: 50
        }

        Rectangle
        {
            id: rec3

            color: "yellow"
            height: 20
            width: 50
        }

И результат показал что именно во внутренних обьектах проблема у меня


0
В принципе тогда последний вопрос, как видите 3 Rectangle распологаются над тем что является ControlView и парентом для MenuContent1
Как заставить воспринимать всем обьектам из MenuContent1 что они должны вставать под ControlView а не поверх? Вот с этим я больше всего борюсь(

0

Переопределить местоположение StackView, в который помещаются страницы и поместить его под ControlView. А не помещать всё в один StackView.

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
КА
19 февраля 2019 г. 18:32
Кристина Афанасьева

C++ - Тест 006. Перечисления

  • Результат:70баллов,
  • Очки рейтинга1
КА
19 февраля 2019 г. 18:26
Кристина Афанасьева

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

  • Результат:60баллов,
  • Очки рейтинга-1
КА
19 февраля 2019 г. 18:00
Кристина Афанасьева

C++ - Тест 002. Константы

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
21 февраля 2019 г. 12:51
Евгений Легоцкой

Иногда CMake приходится перезапускать начисто, не обновляет кэш
R
21 февраля 2019 г. 12:29
RandyGallup

Я указал данные строки, т.к. без них у меня вылетала следующая ошибка: By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configurat...
21 февраля 2019 г. 12:08
BlinCT

Вот атк выглядит мой проектник, посмотрите его. cmake_minimum_required(VERSION 3.6)project(projecttimer)set(CMAKE_CXX_STANDARD 11)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)find_packa...
21 февраля 2019 г. 12:04
BlinCT

Смотрите, если вы используете глобально для проекта -DCMAKE_PREFIX_PATH= то вам не надо уже указывать вот эти строкиset(Qt5Core_DIR "C:/Qt/5.12.1/mingw73_64/lib/cmake/Qt5Core")set(Qt5Gui_DIR...
R
21 февраля 2019 г. 11:54
RandyGallup

Даже не запускается. main.cpp у меня точно такой же, как в статье. CMakeLists.txt пришлось немного подправить (прикрепил ниже), т.к. не находились некоторые файлы. cmake_minimum_requi...
Сейчас обсуждают на форуме
21 февраля 2019 г. 8:58
Евгений Легоцкой

Ну у меня координаты передавались в зависимости от положения курсора мыши, а в вам по сути нужно будет аналогичным способом посылать даннные из полей ввода. Так что здесь скорее интерфес...
20 февраля 2019 г. 21:55
Евгений Легоцкой

Не до конца понимаю сути вопроса, наверное, нужно увидеть программный код и попытку его применения, но к методам базового класса можно обращаться в наследованном классе через вызов по имени ба...
MU
20 февраля 2019 г. 15:06
Maciej Urmański

Yes, ok I have solution! Thank you for directing me about annotate.:) Solution is: users_in = User.objects.filter(joined_users__goal=goal, joined_users__joined=True)
20 февраля 2019 г. 14:40
Евгений Легоцкой

Думаю, что ещё можно переопределить mouseReleaseEvent(QMouseEvent* event) у QTableView, который содержит модель и немного поиграться с индексом. Если это индекс, который соответству...
20 февраля 2019 г. 10:34
Евгений Легоцкой

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

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