Qt QLabel add';边界';围绕文本

Qt QLabel add';边界';围绕文本,qt,qlabel,qstylesheet,Qt,Qlabel,Qstylesheet,是否可以在QLabel中显示的文本上方和下方添加一个轻微的“边框”?边框不应位于QLabel的边缘。相反,它应该在显示的文本中填充10px左右的内容。边界大小为QLabel宽度的75%,从12.5%开始。此外,如果文本发生变化,“边框”应保持不变: 此外,还可以通过QStylesheet或其他一些API设置QLabel的背景色 具体的事情太多了,很难做到。 如果找不到更好的方法,请使用下一步: 您可以使用QPaint在pixmap上绘制所有内容,并将此pixmap设置为label。 对于文本:

是否可以在
QLabel
中显示的文本上方和下方添加一个轻微的“边框”?边框不应位于
QLabel
的边缘。相反,它应该在显示的文本中填充10px左右的内容。边界大小为
QLabel
宽度的75%,从12.5%开始。此外,如果文本发生变化,“边框”应保持不变:


此外,还可以通过
QStylesheet
或其他一些API设置
QLabel
的背景色

具体的事情太多了,很难做到。 如果找不到更好的方法,请使用下一步:

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

关于背景:


您仍然应该绘制这些东西,但在此之前,请使用fill()方法用一些颜色填充pixmap。

性能如何
QPainter
,因为我可能需要每隔20-50ms设置一个不同的文本?@Niklas速度很快,这是个问题。我现在说的不准确,但请检查下一个问题的答案(我添加了CPU负载示例),这样您可以估计时间(当您非常快地移动鼠标时,CPU负载高达7%),QLabel支持HTML,但我不知道是否可以使用htmlSo far
QPainter
对我来说似乎很好。你知道我是否可以画出与中心对齐的文本,或者我必须自己计算吗?好的,有一个
paint.drawText(rect,Qt::AlignCenter,text)函数。这很好。