Comment définir l’image sur QPushButton?

Je veux définir une image sur QPushButton et la taille de QPushButton doit dépendre de la taille de l’image. Je peux le faire en utilisant QLabel , mais pas avec QPushButton .

Donc, si quelqu’un a une solution, alors aidez-moi s’il vous plaît.

Ce que vous pouvez faire, c’est utiliser une pixmap en tant qu’icône, puis mettre cette icône sur le bouton.

Pour vous assurer que la taille du bouton sera correcte, vous devez repasser l’icône en fonction de la taille du pixmap.

Quelque chose comme ça devrait fonctionner:

 QPixmap pixmap("image_path"); QIcon ButtonIcon(pixmap); button->setIcon(ButtonIcon); button->setIconSize(pixmap.rect().size()); 
 QPushButton *button = new QPushButton; button->setIcon(QIcon(":/icons/...")); button->setIconSize(QSize(65, 65)); 

Vous pouvez également vouloir définir la taille du bouton.

 QPixmap pixmap("image_path"); QIcon ButtonIcon(pixmap); button->setIcon(ButtonIcon); button->setIconSize(pixmap.rect().size()); button->setFixedSize(pixmap.rect().size()); 

Vous pouvez aussi utiliser:

 button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);"); 

Note : Ceci est un peu piraté. Vous ne devez l’utiliser qu’en dernier recours. Les icons doivent être définies à partir du code C++ ou de Qt Designer .

Je ne pense pas que vous pouvez définir des images de taille arbitraire sur les classes de boutons existantes. Si vous voulez une image simple se comportant comme un bouton, vous pouvez écrire votre propre sous-classe QAbstractButton, par exemple:

 class ImageButton : public QAbstractButton { Q_OBJECT public: ... void setPixmap( const QPixmap& pm ) { m_pixmap = pm; update(); } QSize sizeHint() const { return m_pixmap.size(); } protected: void paintEvent( QPaintEvent* e ) { QPainter p( this ); p.drawPixmap( 0, 0, m_pixmap ); } }; 

C’est ancien mais il est toujours utile, entièrement testé avec QT5.3.

Attention, exemple concernant le chemin des ressources:

Dans mon cas, j’ai créé un répertoire de ressources nommé “Ressources” dans le projet de répertoire source.

Le dossier “ressources” contient des images et des icons. Ensuite, j’ai ajouté un préfixe “Images” dans Qt Ainsi, le chemin du pixmap devient:

Pixmap QPixmap (“: / images / Ressources / icone_pdf.png”);

JF

Vous pouvez le faire dans QtDesigner. Il suffit de cliquer sur votre bouton, puis d’accéder à la propriété icon puis de choisir votre fichier image.

Utilisez simplement ce code

Pixmap QPixmap (“path_to_icon”);
QIcon iconBack (pixmap);

Notez que: “path_to_icon” est le chemin de l’icône de l’image dans le fichier .qrc de votre projet.
Vous pouvez trouver comment append le fichier .qrc ici

 icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(":/images/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.pushButton.setIcon(icon)