我正在尝试为RPG编写一个编辑器(角色扮演游戏)(npc / quests / items等)。我需要创建一个带有“白色背景”的图标,代表npc的图像。它应该是可点击的(当它被点击时,将根据选择设置当前选择的npc的图标ID。)
我设法构建了一个弹出对话框来显示所有图标,但无法找到创建可点击图标的方法。我应该实现哪个类才能使其正常工作?
答案 0 :(得分:2)
QPushButton* button = new QPushButton;
button->setIcon(QIcon("/path/to/my/icon"));
答案 1 :(得分:0)
我做过类似的事情,但不想要看起来像按钮的东西,也不想进入风格覆盖或特殊绘画。相反,我创建了一个源自QLabel的ClickableLabel类。
代码的相关部分是:
class ClickableLabel : public QLabel
{
protected:
virtual void mouseReleaseEvent (QMouseEvent *evt)
{
emit clicked (evt->button ());
}
signals:
void clicked (int button);
...rest of class definition...
}
您可以根据需要调整信号参数。
答案 2 :(得分:0)
Clickable QLabel:https://wiki.qt.io/Clickable_QLabel
与QPixmap一起使用:http://doc.qt.io/qt-4.8/qlabel.html#pixmap-prop
标题
class ClickableLabel : public QLabel
{
Q_OBJECT
public:
explicit ClickableLabel( const QString& text="", QWidget* parent=0 );
~ClickableLabel();
signals:
void clicked();
protected:
void mousePressEvent(QMouseEvent* event);
};
来源
ClickableLabel::ClickableLabel(const QString& text, QWidget* parent)
: QLabel(parent)
{
setText(text);
}
ClickableLabel::~ClickableLabel()
{
}
void ClickableLabel::mousePressEvent(QMouseEvent* event)
{
emit clicked();
}