【发布时间】:2020-04-04 22:07:19
【问题描述】:
由于Qt 5.10,可以为Popup 元素设置Overlay 附加属性。这里有一个示例https://doc.qt.io/qt-5/qml-qtquick-controls2-overlay.html#modal-attached-prop。这对于需要更改 Popup 的背景并将 dim: 属性设置为 true 的情况非常有用。但是(至少对我而言)我不知道如何更改Overlay 的大小。例如,我有一个自定义ApplicationWindow 覆盖contents: 属性,以便能够在窗口上绘制阴影(我的自定义窗口没有边框)并将MouseArea 放置在边框之外以模仿本机窗口的行为。可悲的是 - Overlay 绘制在整个窗口区域上,这使得超出边界的区域变得丑陋。
在Popup 中使用dim: 属性时,有谁知道调整叠加大小(至少是指背景阴影)的方法?
这是一个典型的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 区域。这就是我想要改变的。到目前为止,我没有找到任何记录在案的方式。
【问题讨论】:
-
@eyllanesc 我添加了截图和
Popup代码。我不会添加窗口元素代码,因为它与问题无关。我刚刚实现了自定义透明边框以将MouseArea放在那里。
标签: qt popup qml overlay applicationwindow