Как я могу заставить объект QMap выдавать сигнал при вызове `QMap :: insert (...)`? - PullRequest
0 голосов
/ 06 декабря 2018

Довольно простой вопрос.

QMap не наследует QObject, поэтому я хотел бы знать, существует ли простой способ Qt сделать это emit mySignal(MyEnum state).

Если вы спрашиваете, почему я это делаюне просто генерировать сигнал в моем коде, когда я вызываю функцию QMap::insert(...), это потому, что это делается в шаблоне ... что "" "я думаю" "" невозможно:

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

Если это поможет, используемый мной объект QMap является глобальным и будет использоваться между потоками.

1 Ответ

0 голосов
/ 06 декабря 2018

Это просто:

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