qml_puthon_user
Dec. 4, 2019, 9:20 p.m.

якоря (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

Do you like it? Share on social networks!

3
Evgenii Legotckoi
  • Dec. 5, 2019, 2:43 a.m.
  • The answer was marked as a solution.

Добрый день.
Вы не задали 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
    • Dec. 5, 2019, 9:51 a.m.

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

      Evgenii Legotckoi
      • Dec. 5, 2019, 1:50 p.m.

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

        Comments

        Only authorized users can post comments.
        Please, Log in or Sign up
        • Last comments
        • AK
          April 1, 2025, 11:41 a.m.
          Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
        • Evgenii Legotckoi
          March 9, 2025, 9:02 p.m.
          К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
        • VP
          March 9, 2025, 4:14 p.m.
          Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
        • ИМ
          Nov. 22, 2024, 9:51 p.m.
          Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
        • Evgenii Legotckoi
          Oct. 31, 2024, 11:37 p.m.
          Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup