Al final la cosa no esta tan clara.
Al crear la clase "bien", con elementos QIcon y ya dentro del proyecto en Qt, me arroja este error:
QPixmap: Must construct a QGuiApplication before a QPixmap
Por lo que veo en Google, se ve que un objeto de la clase Pixmap no puede tener vida fuera de una Applicatión, y esa es la causa del error.
Este es el código:
//h
Código C++:
Ver original#ifndef RECURSOS_H
#define RECURSOS_H
#include <map>
#include <QIcon>
enum class Sexo
{
undefined, male, female
};
using IconsMap = std::map<Sexo,QIcon>;
class RepoIconos
{
private:
static IconsMap _iconos;
static IconsMap initMap()
{
return
{
std::make_pair(Sexo::undefined, QIcon(QStringLiteral("../Primos/iconos/undefined.png"))),
std::make_pair(Sexo::male, QIcon(QStringLiteral("../Primos/iconos/niño.png"))),
std::make_pair(Sexo::female, QIcon(QStringLiteral("../Primos/iconos/niña.png")))
};
}
public:
RepoIconos()=delete;//no debe haber constructor disponible al ser clase estática
static QIcon GetIcon(Sexo type)
{
auto it = _iconos.find(type);
if(it == _iconos.end())
{
it = _iconos.find(Sexo::undefined);
}
return it->second;
}
};
namespace DatosGenerales
{
enum Columnas{Nombre,Ciudad,Color,Sexo};
}
#endif // RECURSOS_H
Código C++:
Ver original//cpp
#include "recursos.h"
IconsMap RepoIconos::_iconos(initMap());
¿Sugerencias?¿Debería abandonar este diseño?