我想创建一个不带任何样式的自定义按钮,仅显示.png图像。

我尝试使用setIcon方法创建一个pushButton,但这使用的是pushButton银色样式,我只想显示图像并将其作为按钮。

另外,我尝试使用QAction

newAct = new QAction(QIcon(":/new/prefix1/images/appbar.close.png"),

但这没有工具栏不会显示任何内容。

有什么想法可以使它起作用吗?

最佳答案

也许这段代码可以帮助您。创建一个QPushButton,为其设置一个图标并使用以下代码:

YourQPushButton->setFlat(true);

更新:

MyPushButton.h:
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H

#include <QLabel>

class MyPushButton : public QLabel
{
    Q_OBJECT
public:
    explicit MyPushButton(QWidget *parent = 0);

signals:
    void clicked();

protected:
    void mouseReleaseEvent(QMouseEvent *ev);

};

#endif // MYPUSHBUTTON_H

MyPushButton.cpp
void MyPushButton::mouseReleaseEvent(QMouseEvent *ev)
{
    emit clicked();
}

使用方法:
MyPushButton btn;
btn.setPixmap(QPixmap(":/rm.png"));
QObject::connect(&btn, SIGNAL(clicked()), qApp, SLOT(quit()));
btn.show();

您甚至可以将此函数添加到MyPushButton类中,以提高工作效率:)
void MyPushButton::setIcon(QPixmap px, int w, int h)
{
    setPixmap(px.scaled(w, h));
}

09-06 21:40