Поскольку Qt 5.10
можно настроить присоединенное свойство Overlay
для элемента Popup
. Пример доступен здесь https: //doc.qt.io/qt-5/qml-qtquick-controls2-overlay.html#modal-attached-prop. Это действительно полезно в случаях, когда необходимо изменить фон для Popup
, у которого для свойства dim:
установлено значение true
. Но нет никакой подсказки (по крайней мере для меня) о том, как я могу изменить размер Overlay
. Например, у меня есть пользовательское свойство ApplicationWindow
, переопределяющее contents:
, чтобы иметь возможность рисовать тень над окном (у моего пользовательского окна нет границ) и размещать MouseArea
за пределами границ, чтобы имитировать поведение родных окон. Печальная часть - Overlay
нарисовано по всей области окна, что делает его некрасивым для области за границами.
Кто-нибудь знает способ настроить размер наложения (по крайней мере, я имею в виду фоновую тень) при использовании свойства dim:
в Popup
?
Вот типичный код Popup
:
Popup {
id: popupReleaseNotes
x: Math.round(parent.width/2 - width/2)
y: Math.round(parent.height/2 - height/2)
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
modal: true
dim: true
}
Здесь вы можете увидеть, как это выглядит в моем приложении:
Фон наложения выходит за мои пользовательские границы, что означает, что он занимает всю область ApplicationWindow
. И это то, что я пытаюсь изменить. Я не нашел никакого документированного способа до сих пор.
1 ответ
Я предлагаю вам использовать ColorOverlay.
https://doc.qt.io/qt-5/qml-qtgraphicaleffects-coloroverlay.html
В любом случае мне кажется, что вы пропустили Overlay.Modal. Читая документацию(), я ожидал чего-то вроде:
Popup {
id: popupReleaseNotes
x: Math.round(parent.width/2 - width/2)
y: Math.round(parent.height/2 - height/2)
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
modal: true
visible: true
Overlay.modal: Rectangle {
anchors.fill: parent
color: "#aacfdbe7"
}
}
PS взгляните на всплывающее окно и его макет, чтобы понять, где может быть проблема между элементом контента и фоном. Возможно, ваше затемнение было сделано на фоне, который больше, чем содержимое. https://doc.qt.io/qt-5/ qml-qtquick-controls2-popup.html
Rectangle
не позволяет изменять размер области наложения.
background
размера). Да, это правда. Мой пользовательский фон окна равен размеру окна. Могу ли я что-нибудь сделать с dim
на другом элементе? К сожалению, я понятия не имею, как это можно сделать. Или отсутствие документов.
Похожие вопросы
Новые вопросы
qt
Qt - это кроссплатформенная среда разработки приложений, широко используемая для разработки прикладного программного обеспечения, которая может работать на различных программных и аппаратных платформах с минимальными изменениями в базовом коде или без таковых, при этом обладая мощью и скоростью собственных приложений. Qt доступен как с коммерческими, так и с открытыми лицензиями.
Popup
. Я не буду добавлять код элемента окна, потому что это не имеет отношения к проблеме. Я только что реализовал пользовательские прозрачные границы, чтобы разместить тамMouseArea
.