如何在QPushButton上设置图像?

我想在QPushButton上设置图像,而QPushButton的大小应该取决于图像的大小。 我能够做到这一点,当使用QLabel ,而不是与QPushButton

所以,如果有人有解决scheme,那么请帮助我。

你可以做的是使用像素图作为图标,然后把这个图标放到button上。

为确保button的大小是正确的,您必须根据像素大小重新调整图标。

像这样的东西应该工作:

 QPixmap pixmap("image_path"); QIcon ButtonIcon(pixmap); button->setIcon(ButtonIcon); button->setIconSize(pixmap.rect().size()); 
 QPushbutton *button = new QPushbutton; button->setIcon(QIcon("<imagePath>")); button->setIconSize(QSize(65,65)); 

您可能还需要设置button大小。

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

你也可以使用:

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

注意 :这是一个小黑客。 你应该使用这只是作为最后的手段。 图标应该从C++代码或Qt Designer

我不认为你可以在任何现有的button类上设置任意大小的图像。 如果你想要一个简单的图像,像一个button,你可以编写自己的QAbstractButton子类,如下所示:

 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 ); } }; 

这是旧的,但它仍然是有用的,充分testing与QT5.3。

有关资源path的例子,

在我的情况下,我在源目录项目中创build了一个名为“Ressources”的资源目录。

文件夹“ressources”包含图片和图标。然后我在Qt中添加了一个前缀“Images”,所以pixmappath变成:

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

JF

你可以在QtDesigner中做到这一点。 只需点击你的button,然后去图标属性,然后select您的图像文件。

只要使用这个代码

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

请注意: “path_to_icon”是项目文件.qrc中图像图标的path
你可以在这里find如何添加.qrc文件