请问大侠们,怎么给工具栏加上logo图标啊,用action加上去的自己控制不了位置和大小,想通过自己安装事件过滤器重绘却没有效果:
StPainterFilter * painterFilter = new StPainterFilter();
myContentWidget->myUiImpl.toolBar->installEventFilter(painterFilter);
bool StPainterFilter::StPainterFilter{
logoPm=QPixmap(":/res/logo_grey.png");
}
bool StPainterFilter::eventFilter(QObject *obj, QEvent *event)
{
QToolBar *toolBar = qobject_cast<QToolBar *>(obj);
if (event->type() == QEvent::Paint &&toolBar)
{
Q_ASSERT(toolBar != 0);
QPainter painter(((QWidget *)obj));
QRect rt = ((QWidget *)obj)->frameGeometry();
//painter.save();
//painter.setRenderHint(QPainter::Antialiasing);
painter.drawPixmap(rt.left()+rt.width()*0.75,rt.top(), logoPm);
painter.drawPixmap(rt.left()+rt.width()*0.9 ,rt.top(), logoPm);
QBrush brush(logoPm);
painter.fillRect(rt.left() + rt.width()*0.75, rt.top(),
rt.left() + rt.width()*0.75+30,
rt.bottom(), logoPm);
return true;
} else {
// standard event processing
return QObject::eventFilter(obj, event);
}
}