QML之Dialog点击背景不让其隐藏或消失

总之不管什么理由,我参与了QML开发,来支持收银系统的桌面应用。想想还是记录点什么吧。

想要让dialog点击背景是不消失,只需要只需要设置一个属性,然而官方文档上我怎么没找到这个属性。不知道为啥

closePolicy: Popup.NoAutoClose

到此结束,哈哈。如果不设置,点击背景会默认调用reject方
法。

奉上详细链接:https://blog.youkuaiyun.com/coral_reef/article/details/105847122
感谢这篇博客的作者

### 设置 QML `Dialog` 的背景颜色图片 在 QML 中,可以通过自定义 `Dialog` 的内容区域来设置背景颜色图片。`Dialog` 本身并没有直接提供背景设置的属性,但可以通过 `contentItem` `background` 属性结合 `Rectangle` `Image` 实现背景定制。 #### 设置背景颜色 可以通过 `contentItem` 包裹一个 `Rectangle` 并设置其颜色来实现背景颜色的更改: ```qml Dialog { id: dialog title: "带背景颜色的对话框" width: 300 height: 200 modal: true anchors.centerIn: parent contentItem: Rectangle { color: "lightblue" Text { text: "这是一个背景为蓝色的对话框。" anchors.centerIn: parent } } } ``` #### 设置背景图片 如果需要设置背景图片,可以使用 `Image` 元素作为 `contentItem` 的一部分,并将其作为背景层: ```qml Dialog { id: dialog title: "带背景图片的对话框" width: 400 height: 300 modal: true anchors.centerIn: parent contentItem: Item { width: parent.width height: parent.height Image { source: "images/dialog_background.jpg" fillMode: Image.PreserveAspectCrop anchors.fill: parent } Text { text: "这是一个带有背景图片的对话框。" anchors.centerIn: parent color: "white" } } } ``` 上述方法利用了 QML 的灵活布局和元素嵌套机制,通过 `Rectangle` `Image` 实现背景定制[^1]。 ### 注意事项 - 在设置背景图片,需要注意图片资源路径的正确性,并确保图片适配对话框的尺寸。 - 如果需要更复杂的背景效果(如渐变、动画等),可以使用 `ShaderEffect` `Gradient` 等高级组件。 - 不同平台上的 `Dialog` 可能会受到系统样式的影响,因此建议在目标平台上进行实际测试以确保视觉效果一致。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值