我在用pyqt写UI的时候遇到一个需求,要在线上显示一个箭头。如图所示。
限制条件为:线已经有了,需要的是显示箭头。即需要一个箭头型的Qlabel或Qwidget。
已经实现QPainter重写绘画事件的解决方法 ,但思考能不能使用qss实现要求,使实现更加简单。
我在用pyqt写UI的时候遇到一个需求,要在线上显示一个箭头。如图所示。
先需要使用 border-image 属性来设置箭头图像:
QLabel#arrowLabel {
border-image: url(arrow.png) 0 0 0 0 stretch stretch;
}
然后可以使用 transform 属性来旋转箭头。例如要将箭头旋转 45 度,可以这样写:
QLabel#arrowLabel {
border-image: url(arrow.png) 0 0 0 0 stretch stretch;
transform: rotate(45deg);
}
使用 origin 属性来调整箭头的旋转中心。例如要将箭头的旋转中心设置为其底部中心,可以这样写:
QLabel#arrowLabel {
border-image: url(arrow.png) 0 0 0 0 stretch stretch;
transform: rotate(45deg);
transform-origin: center bottom;
}
注意这些属性仅适用于 PyQt 5.6 及更高版本。
仅供参考,望采纳,谢谢。