我想在QPushButton
上设置一个图像,QPushButton
的大小应该取决于图像的大小。我在使用QLabel
时可以做到这一点,但不能用QPushButton
。
所以,如果有人有解决方案,那么请帮助我。
您可以做的是使用像素图作为图标,然后将此图标放在按钮上。
要确保按钮的大小正确,您必须根据像素图大小调整图标大小。
这样的事情应该有效:
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));
您可能还想设置按钮大小。
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);");
注意:这有点hacky。你应该只使用它作为最后的手段。图标应该从C++
代码或Qt Designer
设置。
我不认为你可以在任何现有的按钮类上设置任意大小的图像。如果你想要一个像按钮一样的简单图像,你可以编写自己的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 );
}
};
这是旧的但它仍然有用,使用QT5.3进行了全面测试。
小心,有关资源路径的示例:
在我的例子中,我在源目录项目中创建了一个名为“Resources”的资源目录。
文件夹“ressources”包含图片和图标。然后我在Qt中添加了前缀“Images”,因此pixmap路径变为:
QPixmap pixmap(“:/ images / Resources / icone_pdf.png”);
JF
您可以在Qt Designer中执行此操作。只需单击您的按钮,然后转到图标属性,然后选择您的图像文件。
只需使用此代码
QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);
请注意:"path_to_icon"
是项目文件.qrc
中图像图标的路径您可以找到如何添加.qrc
文件here