如何在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文件