Qt QLabel在使用HTML内容时绘制不正确的背景

Qt QLabel在使用HTML内容时绘制不正确的背景,qt,qt5,qpainter,qlabel,qt5.2,Qt,Qt5,Qpainter,Qlabel,Qt5.2,通常,QLabel使用透明背景绘制。但是,如果HTML内容设置为标签文本,它将开始使用父(我猜)背景: 主窗口: 我使用的是qt5.2.1和windows10 有没有办法避免这种奇怪的行为?它是一个bug还是一个特性?我不确定它是bug-已经在这里报告了还是什么 在paintEvent方法开始时添加调试行: qDebug() << "size:" << event->rect() << " w:" << width() <<

通常,
QLabel
使用透明背景绘制。但是,如果HTML内容设置为标签文本,它将开始使用父(我猜)背景:

主窗口:
我使用的是qt5.2.1windows10


有没有办法避免这种奇怪的行为?它是一个bug还是一个特性?

我不确定它是bug-已经在这里报告了还是什么

在paintEvent方法开始时添加调试行:

qDebug() << "size:" << event->rect() << " w:" << width() << " h:" << height();
(我猜,弃用的值12是VBoxLayout的“margin”属性?)

这个“rect()”用于梯度计算

临时解决办法可以是:

QLinearGradient gradient({0.0, 0.0}, {static_cast<qreal>(width()), static_cast<qreal>(height())});
qline参数梯度({0.0,0.0},{static_cast(width()),static_cast(height())});

可以使用Qt 5.9.0 Win10进行复制。对我来说好像是个虫子。我注意到标签背景在调整大小/移动时会闪烁,从透明到不合适的渐变。此外,当移动窗口到我的第二个屏幕时,背景变得透明。。。报告Qt5.10.1版本的QtProjectinLinux上的一个bug,该问题也会重现
qDebug() << "size:" << event->rect() << " w:" << width() << " h:" << height();
size: QRect(0,0 442x305) w: 442 h: 305
size: QRect(12,157 418x136) w: 442 h: 305
size: QRect(0,0 444x305) w: 444 h: 305
size: QRect(12,157 420x136) w: 444 h: 305
QLinearGradient gradient({0.0, 0.0}, {static_cast<qreal>(width()), static_cast<qreal>(height())});