平铺后如何在QML中获得圆角按钮图像

Posted

技术标签:

【中文标题】平铺后如何在QML中获得圆角按钮图像【英文标题】:How to get rounded Corner button image in QML after tiling 【发布时间】:2013-03-13 07:15:36 【问题描述】:

我有带有圆形按钮图像的按钮图像。我正在平铺图像以在 QML 中获得更大的按钮。我将父级用作矩形,将图像用作 BorderImage。平铺后,顶部图像上的矩形可见。我需要删除矩形的一部分,以便只有圆形按钮图像(具有透明度)可见。即使我需要更改后面矩形的颜色,以便可以进行彩色动画。

请提出有效的方法来删除后面的矩形并提供彩色动画。

我将圆形按钮边框图像附加为附件和用于平铺按钮图像的源代码。

Rectangle
id:outerBorderRect
smooth:true
anchors.fill:parent
//opacity:.25
//border.width:0
BorderImage

id:innerBorderRect
smooth:true
anchors.fill:parent
borderleft:20;top:16;right:17;bottom:20
horizontalTileMode:BorderImage.Round
verticalTileMode:BorderImage.Round

source:"button_3.png"



【问题讨论】:

这是众所周知的缺少掩码问题,我认为 Qt Quick 2 中仍然存在。到目前为止,我遇到的唯一解决方案是用 C++ 编写自己的 QML 组件,然后使用它. 【参考方案1】:

一个简单的半破解方法是使用Rectangle 中的radius 属性来隐藏按钮的角。

或者您可以使用 Qt 的 OpacityMask 来使用适当的掩码。

我不确定您要寻找哪种动画。你必须提供更多细节让我回答这部分。

【讨论】:

以上是关于平铺后如何在QML中获得圆角按钮图像的主要内容,如果未能解决你的问题,请参考以下文章

QML中的图像圆角

Winform绘制圆角按钮

如何在 MFC 中创建圆角矩形按钮

SwiftUI:如何获得完美圆角的视图

Kivy 中的圆角按钮角

如何在 WPF 中创建/制作圆角按钮?