找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

兼容Qt4/Qt5版本Qml控件RoundRectangle

admin 2019-5-25 17:12 156人围观 Qt相关


可设置矩形圆角位置的控件。
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和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......