c++ - 创建自定义按钮

标签 c++ qt qaction

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

关于c++ - 创建自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079677/

相关文章:

python - 为什么 QToolTips 不会出现在 QMenu 中的 QActions 上

c++ - 如何在添加成员时维护结构的初始化?

c++ - appendChild xml c++ 无法按需工作

c++ - Qt Signal 是发射器,但信号似乎没有触发

c++ - 以对象方式使用 QActions 改进现有代码

c++ - 确定在 Qt 中按下了哪个快捷方式

c++ - 为什么核心 C 或 C++ 文本不提及声音或图形?

c++ - 以对数递增计算嵌套循环的时间复杂度

c++ - 如何配置 Vim 插件 YouCompleteMe 来读取 Makefile?

c++ - Qt 图表和数据可视化小部件