我想在QPushButton
上设置图片,QPushButton
的尺寸应取决于图片的尺寸。我可以在使用QLabel
时执行此操作,但不能使用QPushButton
。
所以,如果有人有解决方案,那么请帮助我。
答案 0 :(得分:59)
您可以做的是使用像素图作为图标,然后将此图标放在按钮上。
要确保按钮的大小正确,您必须根据像素图大小重新设置图标。
这样的事情应该有效:
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
答案 1 :(得分:37)
QPushButton *button = new QPushButton;
button->setIcon(QIcon(":/icons/..."));
button->setIconSize(QSize(65, 65));
答案 2 :(得分:9)
您可能还想设置按钮大小。
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());
答案 3 :(得分:7)
您也可以使用:
button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");
注意:这有点hacky。你应该只使用它作为最后的手段。图标应设置为C++
代码或Qt Designer
。
答案 4 :(得分:2)
我认为你不能在任何现有的按钮类上设置任意大小的图像。 如果你想要一个像按钮一样的简单图像,你可以编写自己的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 );
}
};
答案 5 :(得分:2)
这是旧的,但它仍然有用, 使用QT5.3进行全面测试。
关于资源路径的例子:
在我的例子中,我在源目录项目中创建了一个名为“Ressources”的ressources目录。
文件夹“ressources”包含图片和图标。然后我在Qt中添加了前缀“Images”,因此pixmap路径变为:
QPixmap pixmap(“:/ images / Ressources / icone_pdf.png”);
JF
答案 6 :(得分:0)
您可以在QtDesigner中执行此操作。只需单击您的按钮,然后转到图标属性,然后选择您的图像文件。
答案 7 :(得分:0)
只需使用此代码
QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);
请注意:"path_to_icon"
是项目文件.qrc
中图片图标的路径您可以找到如何添加.qrc
文件here