qml_puthon_user
4 декабря 2019 г. 21:20

якоря (anchors) между вложенными формами

Всем доброго времени суток.
Подскажите, как установить якоря между вложенными элементами в основной форме?
Код основной формы:

  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.12
  3. import QtQuick.Layouts 1.3
  4.  
  5. import "./Components/Panels" as Panels
  6.  
  7. ApplicationWindow
  8. {
  9. id: general_win
  10. visible: true
  11. width: 800
  12. height: 600
  13. title: qsTr("Test title")
  14.  
  15. Rectangle
  16. {
  17. color: "yellow"
  18. id: mainwindow
  19.  
  20. anchors.top: parent.top
  21. anchors.left: parent.left
  22. anchors.right: parent.right
  23. anchors.bottom: parent.bottom
  24.  
  25. Panels.Panel_menu
  26. {
  27.  
  28. }
  29.  
  30. Panels.Panel_top
  31. {
  32. //anchors.left: Panels.Panel_menu.right //не работает :(
  33. }
  34. }
  35. }

Код вложенного элемента Panel_menu:

  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.12
  3. import QtQuick.Layouts 1.3
  4.  
  5. Pane
  6. {
  7. id: panel_menu
  8. width: 270
  9. height: 480
  10. padding: 0
  11.  
  12. Rectangle
  13. {
  14. width: panel_menu.width
  15. height: panel_menu.height
  16. color: "green"
  17. }
  18. }

Код вложенного элемента Panel_top:

  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.12
  3. import QtQuick.Layouts 1.3
  4.  
  5. Pane
  6. {
  7. id: panel_top
  8. width: 100
  9. height: 50
  10. padding: 0
  11.  
  12. Rectangle
  13. {
  14. id: menu_top
  15. width: panel_top.width
  16. height: panel_top.height
  17. color: "blue"
  18. }
  19. }
2

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

3
Evgenii Legotckoi
  • 5 декабря 2019 г. 2:43
  • Ответ был помечен как решение.

Добрый день.
Вы не задали id для объектов и пытались по именам QML файлов обращаться к объектам. А нужно задавать их id и выполнять обращение по id.

Вот рабочий код

  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.12
  3. import QtQuick.Layouts 1.3
  4.  
  5. import "./Components/Panels/" as Panels
  6.  
  7. ApplicationWindow
  8. {
  9. id: general_win
  10. visible: true
  11. width: 800
  12. height: 600
  13. title: qsTr("Test title")
  14.  
  15. Rectangle
  16. {
  17. color: "yellow"
  18. id: mainwindow
  19.  
  20. anchors.top: parent.top
  21. anchors.left: parent.left
  22. anchors.right: parent.right
  23. anchors.bottom: parent.bottom
  24.  
  25. Panels.Panel_menu
  26. {
  27. id: panel_menu // Задать id
  28. }
  29.  
  30. Panels.Panel_top
  31. {
  32. id: panel_top // Задать id
  33. anchors.left: panel_menu.right // обращаться по id
  34. }
  35. }
  36. }
    qml_puthon_user
    • 5 декабря 2019 г. 9:51

    Подскажите, по новым вопросам создавать отдельные темы или как-то общую сделать, чтобы там обсуждать все вопросы?

      Evgenii Legotckoi
      • 5 декабря 2019 г. 13:50

      Создавайте новые темы, чтобы не было всё в куче.

        Комментарии

        Только авторизованные пользователи могут публиковать комментарии.
        Пожалуйста, авторизуйтесь или зарегистрируйтесь
        • Последние комментарии
        • Evgenii Legotckoi
          16 апреля 2025 г. 17:08
          Благодарю за отзыв. И вам желаю всяческих успехов!
        • IscanderChe
          12 апреля 2025 г. 17:12
          Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
        • AK
          1 апреля 2025 г. 11:41
          Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
        • Evgenii Legotckoi
          9 марта 2025 г. 21:02
          К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
        • VP
          9 марта 2025 г. 16:14
          Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…