Я действительно новичок в QML, и я борюсь с определением базового макета в QML. Как вы привязываете элемент к окну, так что он изменяется при изменении размера окна пользователем? Я хочу добавить Rectangle, который заполняет все пространство, доступное в окне, но я не нашел способ сделать это изнутри qml-файла. Все примеры, которые я нашел до сих пор, используют ширину и высоту исправления, но это означает, что элемент будет сохранять свой размер предустановки при изменении размера окна.Якорный элемент QML для окна
ответ
Для конкретной задачи:
- Anchor всех элементов на основе их родителей (братья и сестры).
- Всегда делайте свой верхний элемент qml, чтобы заполнить пространство зрителя, как описано here.
Добавление к нему. Всякий раз, когда вам требуется такое изменение размера, вам нужно сообщить с одной стороны в другую об изменении геометрии. По бокам я имею в виду от qml до C++ или от C++ до qml.
Рассказывать QML об изменении размера в верхней части окна:
Ваш верхний родительский элемент в QML не получит какой-либо сигнал о изменении размера виджета. Вам нужно сделать это вручную.
Чтобы получить информацию о том, верхний виджет фактически повторно размера, вам нужно реализовать функцию resizeEvent.
Всякий раз, когда вы вызываете свою реализацию, вам нужно сообщить стороне qml, что произошло какое-то изменение размера, и поэтому верхний родитель qml также должен изменить размер.
Рассказывать C++ об изменении размера в верхнем элементе QML:
Точно так же, ваш виджет в C++ не получит какой-либо сигнал о изменении размера верхнего элемента QML. Вам необходимо сделать это вручную:
- Открыть класс от C++ до qml.
- Когда элемент top qml изменяется, вызовите функцию этого класса, чтобы сообщить об этом изменении, и попросите также изменить размер верхнего виджета.
Вы можете получить общее представление об этих подходах here и here.
Простой ответ на это состоит в использовании
Item {
anchors.fill: parent
}
который equivelent к
Item {
anchors {
top: parent.top
left: parent.left
right: parent.right
bottom: parent.bottom
}
}
где родитель объект, который вы хотите деталь быть закреплен внутри. Хотя это, как правило, родитель, он может технически быть привязан ко всему.
Я хочу добавить, что обычно вы статически оцениваете элемент верхнего уровня, поскольку с параметрами по умолчанию в приложении qml окно приложения будет иметь размер корневого элемента в вашем основном qml-файле. Если вы хотите сделать что-то более сложное, вам нужно будет изменить C++, который генерирует QDeclarativeView для вашего приложения.
- 1. HTML Якорный элемент & onload
- 2. Якорный элемент внизу Ионного меню
- 3. Несистемные окна в QML
- 4. Определить значок окна для приложения QML
- 5. QML анимация - перемещение окна приложения
- 6. Сохранение состояния окна с QML
- 7. QML - Перемещение пользовательского бескаркасного окна
- 8. Открытие Qt-окна из QML
- 9. JQuery найти следующий якорный элемент внутри тд
- 10. заменить атрибут href в якорный элемент
- 11. Якорный ребёнок в якорь родительский элемент ошибка
- 12. Элемент окна для UITableView
- 13. Якорный элемент не работает, когда: перед псевдоэлементом
- 14. якорный элемент не меняется встраивать на парении
- 15. Невозможно выполнить клавишу ввода на якорный элемент
- 16. Как скрыть окно QML при открытии другого окна QML
- 17. Элемент QML Row отказывается работать
- 18. QML fade out измененный элемент
- 19. QML: как создать полупрозрачный/полупрозрачный элемент WebView?
- 20. Элемент Simple TextArea в qml
- 21. Прямоугольник как корневой элемент в QML
- 22. Интеграция окна вывода камеры Gstreamer и окна Qml
- 23. QML минимальный размер окна с фреймом
- 24. QML/QtQuick2 Якорь Элемент для статического местоположения на масштабированном изображении
- 25. Обработка для QML Animations
- 26. QML: Перемещение бескаркасного окна путем перетаскивания
- 27. Перетаскивание бескаркасного окна «jiggles» в qml
- 28. Создайте пользовательскую тень для бескаркасного окна в qml
- 29. Создайте элемент multi touch button в qml
- 30. qml gridview: специальный элемент добавить в конце
Это правильно для элементов внутри других элементов, но для изменения размера корневого элемента при изменении размера окна мне пришлось установить режим изменения размера QDeclarativeView в SizeRootObjectToView – svb