Что нужно для регистрации пользовательских классов в Qt? - PullRequest
3 голосов
/ 10 февраля 2011

При работе с приложением Qt GUI, зачем нужна регистрация пользовательского класса, который не является производным от Q_OBJECT ??Я имею в виду использование qRegisterMetaType ("ClassName").

Спасибо, Вишну

1 Ответ

2 голосов
/ 10 февраля 2011

Из документации Qt QtMetaType :

Класс QMetaType управляет именованными типами в мета-объектной системе.Класс используется в качестве помощника для маршалловых типов в QVariant и в подключенных к очереди сигналах и слотах.Он связывает имя типа с типом, чтобы его можно было динамически создавать и уничтожать во время выполнения.Объявите новые типы с помощью Q_DECLARE_METATYPE (), чтобы сделать их доступными для QVariant и других функций, основанных на шаблонах.Вызовите qRegisterMetaType (), чтобы сделать тип доступным для функций, не основанных на шаблонах, таких как подключение сигналов в очереди и слоты.

Регистрация вашего пользовательского типа с помощью qRegisterMetaType () позволяет использовать его в сигналах и слотах,а также другие «не основанные на шаблонах функции»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...