pyside6 qml 自定义边框
作者:Mr_No爱学习
- 2022-11-01 浙江
本文字数:1227 字
阅读完需:约 4 分钟
思路一是将边框拆分成了上下左右四个自定义控件
import QtQuick 2.15
Rectangle{
width: 400
height: 100
anchors.centerIn: parent
Column{
width:1
height:parent.height
spacing: 5
clip: true
anchors.left: parent.left
Repeater{
anchors.fill: parent
model: parent.height/10
delegate: Rectangle{
width: 1
height: 10
color: "black"
}
}
}
Column{
width:1
height:parent.height
spacing: 5
clip: true
anchors.right: parent.right
Repeater{
anchors.fill: parent
model: parent.height/10
delegate: Rectangle{
width:1
height: 10
color: "black"
}
}
}
Row{
width: parent.width
height: 1
spacing: 5
clip: true
anchors.top: parent.top
Repeater{
anchors.fill: parent
model: parent.width/10
delegate: Rectangle{
width: 10
height: 1
color: "black"
}
}
}
Row{
width: parent.width
height: 1
spacing: 5
clip: true
anchors.bottom: parent.bottom
Repeater{
anchors.fill: parent
model: parent.width/10
delegate: Rectangle{
width: 10
height: 1
color: "black"
}
}
}
}
复制代码
虚线边框效果:
调整 repeater 里的 rectangle 为小方块
Repeater{
anchors.fill: parent
model: parent.height/2
delegate:Rectangle{
width: 2
height: 2
color: "black"
}
}
复制代码
效果:
调整为一长一短的线条
Repeater{
anchors.fill: parent
model: parent.width/2
delegate: Rectangle {
width: index % 2 === 0 ? 2 : 10
height: index % 2 === 0 ? 2 : 1
color: "black"
}
}
复制代码
效果
长线条加圆点
Repeater{
anchors.fill: parent
model: parent.width/5
delegate: Rectangle {
width: index % 2 === 0 ? 4 : 10
height: index % 2 === 0 ? 4 : 1
radius: index % 2 === 0 ? 2 : 0
color: "black"
}
}
复制代码
效果
还有一种思路是通过 shape 去画 ShapePath,待补充
------------------------------------------------------------------------------------------------------------
划线
评论
复制
发布于: 刚刚阅读数: 3
Mr_No爱学习
关注
还未添加个人签名 2019-09-13 加入
还未添加个人简介
评论