{Q44 :: insert(...)`被调用时,如何使QMap对象发出信号?

时间:2018-12-05 21:07:17

标签: c++ qt signals qobject qmap

一个非常简单的问题。

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

如果您要问为什么我在调用函数QMap::insert(...)时不仅仅在代码中发出信号,那是因为这是在模板中完成的...“”“”我认为“是不可能:

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

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

1 个答案:

答案 0 :(得分:1)

很简单:

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;
}