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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QObject::connect/disconnect асимметричность  (Прочитано 2764 раз)
Akon
Гость
« : Январь 09, 2014, 20:12 »

Друзья, в Qt4 connect() константный, а disconnect() - нет.
Код:
bool	connect ( const QObject * sender, const char * signal, const char * method, Qt::ConnectionType type = Qt::AutoConnection ) const
bool disconnect ( const char * signal = 0, const QObject * receiver = 0, const char * method = 0 )
По ходу, это просто косяк (и почему он так долго не фиксится?), поскольку соответствующие статические методы оперируют с константными указателями. Т.е. disconnect() должен быть константным.

Ну а мне это ломает строгость кода Грустный
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Январь 09, 2014, 20:34 »

Каким образом ломает? Ведь это обертки над статическими методами connect/disconnect - пользуйтесь ими. Улыбающийся


Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Январь 09, 2014, 20:39 »

В Qt 5 немного изменили прототипы Улыбающийся
http://code.woboq.org/qt5/qtbase/src/corelib/kernel/qobject.h.html
Записан

Akon
Гость
« Ответ #3 : Январь 09, 2014, 21:32 »

Цитировать
Каким образом ломает? Ведь это обертки над статическими методами connect/disconnect - пользуйтесь ими.
Обертка над disconnect() убирает константность. У меня есть модули, которые везде используют нестатические методы. Соответственно (для единообразия), все они должны быть заменены на статические.

Мне необходимо обсервить конст. объект, но я не могу использовать нестатический disconnect(), т.к. он неконст.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Январь 09, 2014, 21:38 »

Соответственно (для единообразия), все они должны быть заменены на статические.
По другому скорее всего не получиться. Я не разбирался почему disconnect не константный, но при добавлении const поломается вся бинарная совместимость. Скорее всего из-за этого ничего менять не будут, тем более уже пятерка в ходу, а там все поправлено.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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