alex_lip
alex_lipMarch 26, 2018, 2:35 a.m.

Z-index для Dialog

Есть несколько диалогов, некоторые вызываются один из другого. И иногда (очень редко) оказывается, что вызываемый диалог находится ПОД вызывающим. Z для Dialog - пишет, что нет такого атрибута. Переписывать все на Item? Но в Item нет  contentItem, который я использую внутри Dialog. Куда смотреть?

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

17
Evgenii Legotckoi
  • March 26, 2018, 2:47 a.m.

А вы какие контролы используете?

Например, в QtQuick 2 у диалогов есть z атрибут.
import QtQuick.Controls 2.3
Если посмотреть документацию, то там есть информация о том, что Dialog наследован от Popup, который имеет property z, соответственно и сам Dialog тоже должен его иметь.
    alex_lip
    • March 26, 2018, 2:51 a.m.

    я использовал  QtQuick.Controls 2.2

      Evgenii Legotckoi
      • March 26, 2018, 3:01 a.m.
      • The answer was marked as a solution.

      Используйте версию 2.3
      И да, почему-то, когда свойства z у диалогов заданы в самого диалоге, то при одновременном открытии они почему-то не срабатывают как положено. Видимо ещё зависит от последовательности открытия диалогов.

      Во всяком случае установка значений z работает, когда диалог уже был открыт. Так что можно корректировать его положение после того, как он открылся.
      import QtQuick 2.10
      import QtQuick.Controls 2.3
      import QtQuick.Layouts 1.3
      
      ApplicationWindow {
          visible: true
          width: 640
          height: 480
          title: qsTr("Hello World")
      
      
          Button {
              anchors.left: parent.left
              anchors.top: parent.top
              text: qsTr("Dialogs")
      
              onClicked: {
      
                  dialog_1.open()
                  dialog_2.open()
                  dialog_1.z = 2
                  dialog_2.z = 100
              }
          }
      
          Dialog {
              id: dialog_1
              width: 200
              height: 150
          }
      
          Dialog {
              id: dialog_2
              width: 200
              height: 150
              background: Rectangle {
                  color: "whitesmoke"
              }
      
              x:50
              y:50
          }
      }
      
        alex_lip
        • March 26, 2018, 3:05 a.m.

        исправил на

        import QtQuick.Controls 2.3
        import QtQuick.Dialogs 1.3
        Ругается -
        qrc:/content/MyDoc.qml:813 ((null)): qrc:/content/MyDoc.qml:813:33 : Cannot assign to non-existent property "z"
        Где можно посмотреть какие последние версии библиотек?
          alex_lip
          • March 26, 2018, 3:07 a.m.

          понял - в рантайме делать

            Evgenii Legotckoi
            • March 26, 2018, 3:07 a.m.

            Вот это удалить - import QtQuick.Dialogs 1.3

            У вас конфликт импортов.
              Evgenii Legotckoi
              • March 26, 2018, 3:09 a.m.

              И в QtQuick.Dialog 1.3 есть тип Dialog и в QtQuick.Controls 2.3 тоже есть тип Dialog.

              Но QtQuick.Dialog 1.3 - это QtQuick версии 1
                alex_lip
                • March 26, 2018, 3:17 a.m.

                Убрал

                QtQuick.Dialogs 1.3
                Вообще все диалоги посыпались ((

                  alex_lip
                  • March 26, 2018, 3:19 a.m.

                  видимо сильно синтаксис поменялся. Будем править..

                    Evgenii Legotckoi
                    • March 26, 2018, 3:21 a.m.

                    Этого следовало ожидать... Вы написали диалоги на версии  QtQuick 1, а документацию скорее всего смотрели на QtQuick 2, поэтому Вам придётся переписать диалоги...

                    Руководствуйтесь вот этой документацией на диалог , а также посматривайте в документацию на его базовый тип Popup
                      alex_lip
                      • March 26, 2018, 3:21 a.m.

                      У меня кнопки рисованные(с градиентом)- а стандартные кнопки в новом диалоге можно кастомайзить?

                        Evgenii Legotckoi
                        • March 26, 2018, 3:24 a.m.

                        Можно просто не использовать стандартный кнопки, а прикрутить свои в Footer и вызывать соответствующие сигналы по кликам по этим кнопкам.

                          alex_lip
                          • March 26, 2018, 3:39 a.m.

                          а что еще устаревшего вот в этом заголовке?



                          import QtQuick 2.7
                          import QtQuick.Controls 2.3
                          //import QtQuick.Dialogs 1.3
                          import QtQuick.Controls.Styles 1.4
                          import QtQuick.Layouts 1.2
                          import QtQuick.Window 2.2
                          import Qt.labs.handlers 1.0
                            Evgenii Legotckoi
                            • March 26, 2018, 3:47 a.m.
                            • (edited)

                            Вот такого подключения должно хватить

                            import QtQuick 2.10
                            import QtQuick.Controls 2.3
                            import QtQuick.Layouts 1.3
                            import Qt.labs.handlers 1.0
                            импорт стилей контролов является устаревшим. Сейчас либо через проперти кастомизация делается, либо через делегат, либо через хардкор под C++ (но это наиболее сложный вариант, хотя примеры в документации есть, если как следует зарыться в них, то можно найти)
                              alex_lip
                              • March 26, 2018, 3:52 a.m.

                              Спасибо!

                                Evgenii Legotckoi
                                • March 26, 2018, 3:54 a.m.

                                Да, забыл сказать.

                                Я удалил из вашего варианта следующий импорт
                                import QtQuick.Window 2.2
                                Но тогда Вам потребуется использовать ApplicationWindow вместо Window
                                  alex_lip
                                  • March 26, 2018, 9:22 a.m.

                                  Это я понял. И оставил.

                                    Comments

                                    Only authorized users can post comments.
                                    Please, Log in or Sign up
                                    d
                                    • dsfs
                                    • April 26, 2024, 4:56 a.m.

                                    C ++ - Test 004. Pointers, Arrays and Loops

                                    • Result:80points,
                                    • Rating points4
                                    d
                                    • dsfs
                                    • April 26, 2024, 4:45 a.m.

                                    C++ - Test 002. Constants

                                    • Result:50points,
                                    • Rating points-4
                                    d
                                    • dsfs
                                    • April 26, 2024, 4:35 a.m.

                                    C++ - Test 001. The first program and data types

                                    • Result:73points,
                                    • Rating points1
                                    Last comments
                                    k
                                    kmssrFeb. 8, 2024, 6:43 p.m.
                                    Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                    Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                    EVA
                                    EVADec. 25, 2023, 10:30 a.m.
                                    Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                    J
                                    JonnyJoDec. 25, 2023, 8:38 a.m.
                                    Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                    G
                                    GvozdikDec. 18, 2023, 9:01 p.m.
                                    Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                    Now discuss on the forum
                                    G
                                    GarApril 22, 2024, 5:46 a.m.
                                    Clipboard Как скопировать окно целиком в clipb?
                                    DA
                                    Dr Gangil AcademicsApril 20, 2024, 7:45 a.m.
                                    Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                                    a
                                    a_vlasovApril 14, 2024, 6:41 a.m.
                                    Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                                    Павел Дорофеев
                                    Павел ДорофеевApril 14, 2024, 2:35 a.m.
                                    QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                                    f
                                    fastrexApril 4, 2024, 4:47 a.m.
                                    Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                                    Follow us in social networks