QPainter p(this);
for (int i = 0; i < this->actions().count(); ++i)
{
QAction *action = this->actions().at(i);
QRect actionRect = ...........
QStyleOptionMenuItem opt;
initStyleOption(&opt, action);
opt.rect = actionRect;
QString strPicPath="/h/downloads/tableviewenabledBackGroundImageId.jpg";
QPixmap pic(strPicPath);
pic=pic.scaled(opt.rect.size());
opt.palette.setBrush(QPalette::Background,QBrush(pic));
p.fillRect(opt.rect,opt.palette.background());
style()->drawControl(QStyle::CE_MenuItem, &opt, &p, this);
}
我需要获取QMenu的actionRect用于绘制所选菜单项而不使用Qt的样式表。 提前谢谢
答案 0 :(得分:0)
试试这个 - &gt; actionGeometry(QAction *),它应返回正确的QRect。 我在我的一个程序中使用了它,它运行得很好。