我想创建一个不带任何样式的自定义按钮,仅显示.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));
}