Qt / C ++存储QMap中回调的父方法

时间:2014-09-08 15:02:09

标签: c++ qt methods callback qmap

我的A类使用A1,A2,A3等方法,每个方法都接受相同的参数(quint64和Qstring)。 A类实例化B类的对象,其中包含:

typedef void (*TCallBackFunction)(quint64, QString);
struct SCallBacks {
    TCallBackFunction success;
    TCallBackFunction failure;
};
QMap<int, SCallBacks> m_commandQueue;
void addToMap(int num, SCallBacks cb) {
  m_commandQueue[num] = cb;
}
void doCallBack(int num) {
  m_commandQueue[num].success(123,"TEST");
}

在A班我会打电话:

SCallBack t(1,A1);
b.AddToMap(1000,t);
b.doCallBack(1000);

我的问题是:

  1. 可以A指向A方法,并期望孩子B调用它们吗?
  2. 这是B调用A方法的正确方法吗? (每当我重用B类时,信号和插槽都需要我复制大量代码......所以希望这不是唯一的方法)
  3. 我不确定将指针存储到带参数的函数的语法,以及如何调用它们 - 有人可以修复上面的错误吗?

0 个答案:

没有答案