суббота, 17 сентября 2011 г.

создание своего QVariant

Что такое QVariant вы надеюсь знаете, и что там есть эээ штук 10 дефолтных типов
а что бы сделать свой .. я как раз и расскажу.В общем тут не сложно :)

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

ниже пример не мой )) но я думаю и так понятно.

Комментариев нет:

Отправить комментарий