当调用 `QMap::insert(...)` 时,如何让 QMap 对象发出信号?

How can I make a QMap object emit a signal when `QMap::insert(...)` is called?

非常简单的问题。

QMap 不继承 QObject,所以我想知道是否有一种简单的 Qt 方法来实现 emit mySignal(MyEnum state)

如果你问为什么我在调用函数 QMap::insert(...) 时不只是在代码中发出信号,那是因为这是在模板中完成的... which """I think" "" 是不可能的:

http://doc.qt.io/archives/qt-4.8/templates.html

如果有帮助,我使用的 QMap 对象是全局对象,将在线程之间使用。

很简单:

class MyMap : public QObject
{
     Q_OBJECT;
public slots:
    void insert(... key, ... value)
    {
        _map.insert(key, value);
        emit isInserted(key);
    }
signals:
    void isInserted(... key);
private:
    QMap<..., ...> _map;
}