Fix ListBox loop paint bug.

This commit is contained in:
Krad
2022-07-15 10:29:42 +08:00
parent 2dfb3a6359
commit b2ca6d7d68

View File

@@ -13,16 +13,17 @@ ListBox::ListBox(QWidget *parent) : QToolButton(parent) {
}
void ListBox::paintEvent(QPaintEvent *e) {
QString temp = this->text();
this->setText("");
QToolButton::paintEvent(e);
this->setText(temp);
QStylePainter painter(this);
QStyleOptionToolButton opt;
initStyleOption(&opt);
//在最后绘制按钮的时候将text清空避免绘制出左对齐的文字
opt.text.clear();
painter.drawComplexControl(QStyle::CC_ToolButton, opt);
//自行绘制居中对齐的文字
int x = (size().width() - this->iconSize().width()) / 2 - (this->text().length() * opt.font.pixelSize()) / 4;
int y = this->iconSize().height() + 2;
painter.drawText(x,y,this->text());
}