QT:我应该使用哪个对象/项目创建可点击图标
Qt: Which object/item should I use to create clickable icons
我正在尝试编写RPG(角色扮演游戏)(NPC/Quests/Quartion等)的编辑器。我需要创建一个代表NPC图像的"白色背景"的图标。应该单击(单击时,当前选定的NPC的图标ID将根据选择设置)。
我设法构建了一个弹出对话框来显示所有图标,但无法找到创建可点击图标的方法。我应该实施哪个类以使其正常工作?
可以使用QPushButton
或QToolButton
来实现可单击的图标:
QPushButton* button = new QPushButton;
button->setIcon(QIcon("/path/to/my/icon"));
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();
}
我做了类似的事情,但不想要看起来像按钮的东西,也不想进入时尚覆盖或特殊绘画。相反,我创建了一个从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...
}
您可以根据需要调整信号参数。
相关文章:
- 我可以在不创建项目的情况下在Visual Studio 2019中编译和运行HelloWorld.cpp吗?
- 如何在VS Code中创建C++项目并链接主,函数和标题?
- 在 Visual Studio 中创建 C++ 项目
- 使用ROS2环境变量创建C 项目
- 我可以使用自定义样板模板创建QT创建项目
- 无法在eclipse中创建C++项目
- 如何在Cocos2DX 3.0 beta中创建项目
- 如何在QT创建项目中使用RESTCLIENT-CPP
- 如何在Visual Studio中创建C++项目筛选器/文件夹
- 在使用 VS-add 创建项目时不能包含 Qt 类
- 通过终端和编译创建项目文件失败,但通过Qt Creator IDE工作正常
- 如何在Visual Studio中使用一堆源文件创建C++项目
- 无法加载或创建项目 VS 2015.1.无法创建 Visual c# 2015 编译器
- 虚幻引擎4.10没有创建c++项目
- MarmaladeSDK:如何在XCode中创建项目
- Visual Studio 2010 Express创建项目失败
- c++ visual studio 2010 -如何在不同的文件夹名称下创建项目
- Visual Studio Express 2013:如何使用现有的c++源文件创建项目
- 在使用CMake构建后,如何在Visual Studio中创建项目以使用OpenMesh?
- Eclipse C++ 不创建项目文件夹层次结构