要使类的函数成为槽,该类必须继承自 QObject。但是,QObject 占用了相当多的内存。我不确定它是多少,以及内存是否适用于每个类或每个对象。我的代码有很多小数据,它们的功能有时可能是一个槽。我想知道在使用它时是否有一种方法可以使类的功能暂时成为一个插槽。使用后,slot cost的内存将被删除。以下代码说明了要求。
class SmallData // size of 2 or 3 integers.
{
public:
virtual void F(); // use it as a slot.
virtual QMenu* createMenu(); // use this to create the context menu with
// an action connected to F()
...
};
// use the small data
vector<SmallData> vec(1000000); // the vector is put at a tree view. When an
// item in the tree view is selected, a context
// menu pop up with an action to run F().
SmallData* data = treeView.selectedItem();
connect(action, SIGNAL(triggered()), data, SLOT(F())); // How to make F() to be
// a slot just here.
// The action is from
// data->createMenu().