Russian Qt Forum
Ноябрь 23, 2024, 04:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: вопрос по qRegisterMetaType  (Прочитано 4896 раз)
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« : Июль 11, 2014, 14:18 »

Доброго времени суток!

Возник вопрос касаемый функции qRegisterMetaType. Пишу библиотечку, которая использует QTcpSocket, у которого есть сигнал void QAbstractSocket::error ( QAbstractSocket::SocketError socketError ), для использования которого надо регистрировать энумерацию QAbstractSocket::SocketError с помощью  Q_DECLARE_METATYPE и qRegisterMetaType.
Собственно вопрос, на сколько безопасно вызывать функцию qRegisterMetaType несколько раз с одними и теми же параметрами? Ладно, я в своей библиотеке смогу сделать вызов это функции только один раз, но никто же не гарантирует, что в других библиотеках эта же функция не будет вызвана с этими же параметрами.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Swa
Самовар
**
Offline Offline

Сообщений: 170


Просмотр профиля
« Ответ #1 : Июль 11, 2014, 14:36 »

В документации не написано, что нельзя вызывать этот метод два раза с одним аргументом.
Но вы можете попробовать это сделать в тестовой программе, просто чтобы проверить.
Записан
Bepec
Гость
« Ответ #2 : Июль 11, 2014, 15:00 »

Ну насколько я помню там создаётся соответствие типа его строковому представлению. Думаю там эта ситуация уже решается.
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #3 : Июль 11, 2014, 15:02 »

В документации не написано, что нельзя вызывать этот метод два раза с одним аргументом.
Но вы можете попробовать это сделать в тестовой программе, просто чтобы проверить.
В тестовой программе всё хорошо, но вдруг какие то подводные камни есть? Та же самая тестовая программа при вызове qRegisterMetaType несколько раз с одинаковыми параметрами на выходе один и тот же id возвращает, так что думаю что всё ок должно быть, но мало ли Улыбающийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Июль 11, 2014, 15:40 »

Почему бы не заюзать QMetaType::isRegistered?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #5 : Июль 14, 2014, 10:31 »

Почему бы не заюзать QMetaType::isRegistered?
Спасибо!
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.142 секунд. Запросов: 23.