2017-06-01 7 views
0
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); 
} 

J'ai besoin d'actionRect du menu QMenu pour le menu de peinture sélectionné Sans utiliser la feuille de style de Qt. merci d'avanceObtenir ActionRect de QMenu pour peindre une image

+0

Vous pourriez donner une brève description de votre problème, si vous le mettez si probablement fermer cette question. – eyllanesc

+0

désolé pour malentendu .... j'ai besoin d'obtenir actionRect de QMenu pour le menu de peinture sélectionnée Élément sans utiliser la feuille de style de Qt. –

+0

S'il vous plaît [modifier] (https://stackoverflow.com/posts/44298888/edit) votre question et l'ajouter là – eyllanesc

Répondre

0

Essayez ceci-> actionGeometry (QAction *), qui devrait renvoyer le QRect correct. J'ai utilisé ceci dans un de mes programmes, où ça a très bien marché.