找回密码
 立即注册
Qt开源社区 门户 查看内容

兼容Qt4/Qt5版本Qml控件RoundRectangle

2019-5-25 17:12| 发布者: admin| 查看: 935| 评论: 0

摘要: 可设置矩形圆角位置的控件。RoundRectangle备注导入方法文件导入兼容性QtQuick 1.xQtQuick 2.x继承Rectangle属性radiusCorners: int描述通过设置一个radiusCorners值,可控制圆角方向。RoundRectangle { width:10 ...

可设置矩形圆角位置的控件。
RoundRectangle备注
导入方法文件导入
兼容性
QtQuick 1.x

QtQuick 2.x
继承Rectangle

属性


  • radiusCorners: int

描述


  • 通过设置一个radiusCorners值,可控制圆角方向。
RoundRectangle {
width:100; height:50
color:"lightblue"
radius:10

radiusCorners:Qt.AlignLeft|

               Qt.AlignRight|

               Qt.AlignTop|

               Qt.AlignBottom
}

示例




属性文档


  • radiusCorners: int
    设置圆角位置。


  • radiusCorners可使用的值:
常量描述
Qt.AlignLeft0x0001与左边缘对齐
Qt.AlignRight0x0002与右边缘对齐
Qt.AlignTop0x0020与顶部对齐
Qt.AlignBottom0x0040与底部对齐


  • radiusCorners可使用的组合值范围:
radiusCorners效果
0



Qt.AlignLeft |

Qt.AlignRight |

Qt.AlignTop |

Qt.AlignBottom
(默认值)



Qt.AlignLeft | Qt.AlignTop | Qt.AlignBottom


Qt.AlignRight | Qt.AlignTop | Qt.AlignBottom


Qt.AlignLeft | Qt.AlignRight | Qt.AlignTop


Qt.AlignLeft | Qt.AlignRight | Qt.AlignBottom


关于更新


  • 文章首发于微信公众号你才小学生

  • 后续更新于Qtbig哥(qtbig.com)

源码

/**********************************************************
Author: Qtbig哥
WeChat Official Accounts Platform: nicaixiaoxuesheng (文章首发)
Website: qtbig.com(后续更新)
Email: 2088201923@qq.com
QQ交流群: 732271126
LISCENSE: MIT
**********************************************************/
importQtQuick2.0

Rectangle {
id: root
property int radiusCorners:Qt.AlignLeft|Qt.AlignRight|Qt.AlignTop|Qt.AlignBottom/* Default: */
/*
Qt.AlignLeft | Qt.AlignLeft | Qt.AlignRight | Qt.AlignLeft | Qt.AlignLeft |
Qt.AlignRight | Qt.AlignTop | Qt.AlignTop | Qt.AlignRight | Qt.AlignRight |
None:0 Qt.AlignTop | Qt.AlignBottom Qt.AlignBottom Qt.AlignTop Qt.AlignBottom
Qt.AlignBottom
***************** ************* *************** *************** ************* *****************
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * *
***************** ************* *************** *************** ***************** *************
*/

Repeater {
model: [ {
x:0,
y:0,
visible:internal.aligns(Qt.AlignLeft|Qt.AlignTop),
radius:root.radius
},
{
x:root.width-root.radius,
y:0,
visible:internal.aligns(Qt.AlignRight|Qt.AlignTop),
radius:root.radius
},
{
x:0,
y:root.height-root.radius,
visible:internal.aligns(Qt.AlignLeft|Qt.AlignBottom),
radius:root.radius
},
{
x:root.width-root.radius,
y:root.height-root.radius,
visible:internal.aligns(Qt.AlignRight|Qt.AlignBottom),
radius:root.radius
} ]

Rectangle {
x:modelData.x; y:modelData.y
width:modelData.radius; height: width
visible:!modelData.visible
color:parent.color
}
}

QtObject {
id: internal

functionaligns(direction) {
return (root.radiusCorners& direction) === direction
}
}
}

----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:你才小学生,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了