Fix ListBox loop paint bug.
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user