2014-10-07 111 views
0

是否可以在QLabel中显示的文字顶部和底部添加轻微的“边框”?边框不应该在QLabel的边缘。相反,它应该有一个像10px的填充到显示的文本。边界的大小为宽度的75%,从12.5%开始。此外,如果文本发生变化时,“边界”应该保持不变:QLabel在文字周围添加“边框”

enter image description here

此外,它仍然可能通过QStylesheet或一些其他的API来设置QLabel的背景颜色。

回答

2

太多的具体事情很容易做到。 如果您找不到更好的方法,请使用下一个:

您可以使用QPainter在pixmap上绘制所有的东西,并将此pixmap设置为标签。 对于文本:drawText,用于drawLine线并使用标签的几何图形来设置所需的大小。

关于背景:

不过你应该得出这样的事情,但这种使用fill()方法之前,一些颜色来填充像素图。

+0

性能问题是'QPainter',因为我可能需要每隔20-50ms设置一个不同的文本? – Niklas 2014-10-07 20:55:48

+0

@Niklas它快,是问题。我不能说现在准确,但检查我的答案在下一个问题(我加了CPU负载的例子),所以你可以大致的时间(当你移动鼠标非常快,高达7%的CPU负载)http://stackoverflow.com/questions/25404709/how-to-make-a-qlineedit-follow-the-show-me-its-coordinates/25410887#25410887 – Chernobyl 2014-10-07 21:02:08

+0

QLabel支持HTML,但我不知道是否可以用html做到这一点 – Chernobyl 2014-10-07 21:05:44