Russian Qt Forum
Ноябрь 24, 2024, 23:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Новый connect Qt 5 - другая таблица соединений?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Новый connect Qt 5 - другая таблица соединений? (Прочитано 6522 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Новый connect Qt 5 - другая таблица соединений?
«
:
Апрель 14, 2014, 11:27 »
В предыдущих Qt в таблице соединений хранились пары символьных имен сигналов и слотов, с числом в начале имени. '1' - у сигнала, '2' - у слота. Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником. В новом варианте можно вызвать connect с указателями на функции. При этом функция-приемник не обязательно должна быть объявлена, как slot (фактически, это имя нужно только для поддержки старого способа). И даже это может быть лямбда-функция без имени. Собственно, такое давно хотелось, особенно лямбды, которые по сигналу внутри что-то переключают, и больше нигде никогда не нужны.
Но теперь мне не ясно, как определять, к передатчику или приемнику подключено соединение. Я еще не копал, но очевидно таблица теперь содержит только указатели на точки входа, а не символьные имена с префиксами. А есть ли информация - сигнал это или слот? Можно её как-то легально получить? Кто-нибудь уже разобрался с этим?
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #1 :
Апрель 14, 2014, 11:52 »
MethodType QMetaMethod::methodType() const
Returns the type of this method (signal, slot, or method).
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #2 :
Апрель 15, 2014, 13:40 »
Дык... этот метод и в 4.8 был. Но у меня несколько иная ситуация, и блин... с моим кодом новый вариант коннекта не совместим, придется переделывать.
Хотя, что слышно - старый connect с помощью макросов SIGNAL() и SLOT() не собираются убрать совсем? Если нет, то я могу ничего не менять.
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #3 :
Апрель 15, 2014, 13:50 »
думаю если и уберут, то в Qt 6
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #4 :
Апрель 15, 2014, 13:51 »
Ничего пока не слышно. Молчат как партизаны. Думаю оставят ради совместимости, вот только переиначат как-нить. Всё ж у вас код по локоть в механизме сигнал слотов
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #5 :
Апрель 15, 2014, 14:05 »
Цитата: Гурман от Апрель 14, 2014, 11:27
Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником.
QObject::connectNotify, QObject::disconnectNotify, QObject::isSignalConnected - ничто из этого вашу проблему не решит?
«
Последнее редактирование: Апрель 15, 2014, 14:11 от LisandreL
»
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Новый connect Qt 5 - другая таблица соединений?
«
Ответ #6 :
Апрель 15, 2014, 14:31 »
Цитата: LisandreL от Апрель 15, 2014, 14:05
Цитата: Гурман от Апрель 14, 2014, 11:27
Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником.
QObject::connectNotify, QObject::disconnectNotify, QObject::isSignalConnected - ничто из этого вашу проблему не решит?
Неа... мне надо
до
соединения выяснять, можно его устанавливать или нет. Поэтому в дескрипторах, в том числе, статических, прописано - вход или выход. Если совместимости не будет - мне надо будет переделывать, добавлять в дескриптор признак вход-выход. Пока обходился просто макросом, проверяющим символ '1' или '2' в начале имени записано.
Не смертельно, конечно, но надо понимать, чего ожидать...
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...