c++ - 如何在 C++ Qt 中填充静态 QMap 的值?

标签 c++ qt qt4

我的 C++ 头文件中有这个:

#include <QMap>
#include <QString>

class LogEvent {

public:
    LogEvent();

    enum column_t {TIMESTAMP_COLUMN = 0, TYPE_COLUMN = 1, EVENT_COLUMN = 2,
        FILE_COLUMN = 3};
    static QMap<column_t, QString> COLUMN_NAMES;

    static QMap<column_t, QString> getColumnNames() {
        return LogEvent::COLUMN_NAMES;
    }

    //blah blah blah other functions
};

这是我的 C++ 源文件:

#include "LogEvent.h"

LogEvent::LogEvent()
{
    //constructor code
}

//blah blah blah other functions

我想将值添加到我的静态 QMap COLUMN_NAMES。我将在哪里以及如何做到这一点?

最佳答案

同时,Qt 5.2 在 QMap 中增加了对 C++11 初始化列表的支持:

QMap::​QMap(std::initializer_list<std::pair<Key, T> > list)

这意味着你可以像这样初始化你的 map :

static QMap<QString, int> my_map{{"a", 1}, {"b", 2}, {"c", 3}};

关于c++ - 如何在 C++ Qt 中填充静态 QMap 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157625/

相关文章:

QT全局鼠标监听器

multithreading - Qt:使用线程和信号/槽时 GUI 有时会卡住

qt - CMake : detect "Q_OBJECT" in a file and add it to a list of file to treat by MOC

c++ - Qt4 Creator/QMAKE 相当于 "-mcmodel=medium"GCC 编译器设置

c++ - 从派生类对象访问具有相同签名的基类 fn

c++ - 如何强制在编译时评估 constexpr 函数

c++ - 简单 C++ OpenGL 程序的 Makefile

c++ - Boost 库中 do_accept 函数结束时不会调用listener::on_accept 函数

C++ FFmpeg 刷新后如何继续编码?

qt - 如何从 QTest 单元测试编辑 QTableView 单元格?