我现在真的被困住了。我的应用程序可以通过单击创建(动画)帧,这些帧可以移动、删除或编辑。我想要某种右键单击上下文菜单来删除它们。
我现在的尝试是创建一个 QListWidget,并在其中插入 QListWidgetItems(框架)。我可以把这些物品放在那里,但是我当然不知道如何存储框架。
我试图创建一个从 QListWidgetItem 派生的新类,如下所示:
#pragma once
#include <qobject.h>
#include <QtGui>
#include <Frame.h>
class FrameItem : public QListWidgetItem
{
public:
FrameItem();
Frame frame;
void setFrame(Frame f);
Frame getFrame();
int id;
void setId(int id);
int getId();
};
这实际上会起作用,但 itemClicked() 信号不再触发。
void itemClicked(QListWidgetItem* item)
{
std::cout << item->text().toStdString() << std::endl;
};
如果我将 itemClicked(QListWidgetItem* item) 的参数更改为 itemClicked(FrameItem* item),则信号不再触发。
我需要覆盖 itemClicked() 插槽吗?如果是,如何?是否有更好的方法来存储大量数据,并为它们提供右键单击上下文菜单?