In .cpp file put this line:
QHash<QString,int> Classname::flagColorsMap;
Edited:
Please check this really simple example of static QHash member initialization: create new Qt Quick project and edit MainWindow class:
// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
static QHash<QString,int> flagColorsMap;
};
#endif // MAINWINDOW_H
And source file:
// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
QHash<QString,int> MainWindow::flagColorsMap;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
MainWindow::flagColorsMap.insert("xyz",22);
}
MainWindow::~MainWindow()
{
qDebug() << "Value=" << flagColorsMap.value("xyz");
delete ui;
}
Is it still does not work?