Что такое QVariant вы надеюсь знаете, и что там есть эээ штук 10 дефолтных типов
а что бы сделать свой .. я как раз и расскажу.В общем тут не сложно :)
1. что нужно это сделать класс какой нужно что бы QVariant знал.
class dataLobbyList
а что бы сделать свой .. я как раз и расскажу.В общем тут не сложно :)
1. что нужно это сделать класс какой нужно что бы QVariant знал.
class dataLobbyList
{
public:
dataLobbyList(QString _host,QString _port,QString _login,QString _pass)
: m_Host(_host),m_Port(_port) , m_Login(_login) , m_Password(_pass)
{}
dataLobbyList(){}
virtual int getTypeData(){return TYPE_LOBBY_LIST;}
QString m_Host;
QString m_Port;
QString m_Login;
QString m_Password;
};
Q_DECLARE_METATYPE(dataLobbyList)
И главное в нем , это последняя строчка, она делает регистрацию в метатипах.
Что бы как раз QVariant знал ваш класс.
2. ну и использование данной вещи.
DialogConnectInfo dialog("host","test","123","123");
QVariant var;
var.setValue<DialogConnectInfo>(dialog);
// ...
DialogConnectInfo bar2 = var.value<DialogConnectInfo>();
var.typeName(); // Foo::Bar
ниже пример не мой )) но я думаю и так понятно.
Комментариев нет:
Отправить комментарий