Михаиллл
Михаиллл21 июля 2020 г. 10:47

Qt, изменение родителя в дизайнере.

Добрый день.
Можно ли в Qt в дизайнере менять родителя у виджетов или это можно делать только в коде используя setParent?

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

Вам это нравится? Поделитесь в социальных сетях!

7
Evgenii Legotckoi
  • 21 июля 2020 г. 15:54
  • Ответ был помечен как решение.

Добрый день.

Qt Designer создаёт файл ui формы, который по сути является xml документом. После чего Qt Designer выполняет чтение xml документа и рендери на его основе виджеты. При запсуке сборки происходит генерирование исходного кода на основе этого xml документа.
При этом все виджеты в качестве родителя получают тот виджет внутри которого они находятся в форме. Как если бы этого было написано вручную в программном коде. Итоговый код можно посмотреть после компиляции в сгенерированных UI cpp файлах. В некоторых случаях родитель либо будет передаваться сразу в конструктор дочернего виджета, либо устанавливаться через setParent.

Но по сути в дизайнере вы задаёте лишь xml документ из которого генерируется программный код. То есть исходя уже из этого можно утверджать, что вызов метода setParent в дизайнере невозможен.

Так что только в коде.

    Михаиллл
    • 21 июля 2020 г. 16:08

    Ясно, спасибо. А в дизайнере на лэйбэл натянуть другой лэйбэл или кнопку тоже нельзя?

      Evgenii Legotckoi
      • 21 июля 2020 г. 16:13

      А зачем? ))) Вообще что-то странное получается.
      Но думаю, что можно сделать, если не использовать Layout объекты а делать абсолютное позиционирование и потом переутанавливать координаты.
      Но как бы что-то странное получается... Я бы подумал о том, чтобы задуматься о дизайне.

        Михаиллл
        • 21 июля 2020 г. 16:26

        К сожалению дизайн и требует подобного. Есть общий фон, на него нужно налепить прямоугольник с другим цветом, а на этот прямоугольник кнопки и прочее. Я придумал создавать объекты вручную в коде. Но если бы можно было на лэйбэл - прямоугольник налепить другие виджеты, то это упростило бы эту задачу.

          Evgenii Legotckoi
          • 21 июля 2020 г. 16:33

          Тяжко уже находить даже те статьи... которые сам писал...

          Вам нужно использовать абсолютное позиционирование
          Вот пример в этой статье Qt/C++ - Урок 089. Кнопки с абсолютным позиционированием внутри QGraphicsView

            Михаиллл
            • 21 июля 2020 г. 16:47

            Я так и делал, просто наделся как нибудь выкрутится по нормально, как нибудь с похожим подходом на QML , но не судьба.

              Evgenii Legotckoi
              • 22 июля 2020 г. 4:03

              Не, якорей там нет, поэтому грусть печаль в этом плане.

                Комментарии

                Только авторизованные пользователи могут публиковать комментарии.
                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                d
                • dsfs
                • 26 апреля 2024 г. 1:56

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

                • Результат:80баллов,
                • Очки рейтинга4
                d
                • dsfs
                • 26 апреля 2024 г. 1:45

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

                • Результат:50баллов,
                • Очки рейтинга-4
                d
                • dsfs
                • 26 апреля 2024 г. 1:35

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

                • Результат:73баллов,
                • Очки рейтинга1
                Последние комментарии
                k
                kmssr8 февраля 2024 г. 15:43
                Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                АК
                Анатолий Кононенко4 февраля 2024 г. 22:50
                Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                EVA
                EVA25 декабря 2023 г. 7:30
                Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                J
                JonnyJo25 декабря 2023 г. 5:38
                Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                G
                Gvozdik18 декабря 2023 г. 18:01
                Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                Сейчас обсуждают на форуме
                G
                Gar22 апреля 2024 г. 2:46
                Clipboard Как скопировать окно целиком в clipb?
                DA
                Dr Gangil Academics20 апреля 2024 г. 4:45
                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_vlasov14 апреля 2024 г. 3:41
                Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                Павел Дорофеев
                Павел Дорофеев13 апреля 2024 г. 23:35
                QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                f
                fastrex4 апреля 2024 г. 1:47
                Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                Следите за нами в социальных сетях