Название: Новый connect Qt 5 - другая таблица соединений? Отправлено: Гурман от Апрель 14, 2014, 11:27 В предыдущих Qt в таблице соединений хранились пары символьных имен сигналов и слотов, с числом в начале имени. '1' - у сигнала, '2' - у слота. Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником. В новом варианте можно вызвать connect с указателями на функции. При этом функция-приемник не обязательно должна быть объявлена, как slot (фактически, это имя нужно только для поддержки старого способа). И даже это может быть лямбда-функция без имени. Собственно, такое давно хотелось, особенно лямбды, которые по сигналу внутри что-то переключают, и больше нигде никогда не нужны.
Но теперь мне не ясно, как определять, к передатчику или приемнику подключено соединение. Я еще не копал, но очевидно таблица теперь содержит только указатели на точки входа, а не символьные имена с префиксами. А есть ли информация - сигнал это или слот? Можно её как-то легально получить? Кто-нибудь уже разобрался с этим? Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: kambala от Апрель 14, 2014, 11:52 MethodType QMetaMethod::methodType() const
Returns the type of this method (signal, slot, or method). Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: Гурман от Апрель 15, 2014, 13:40 Дык... этот метод и в 4.8 был. Но у меня несколько иная ситуация, и блин... с моим кодом новый вариант коннекта не совместим, придется переделывать.
Хотя, что слышно - старый connect с помощью макросов SIGNAL() и SLOT() не собираются убрать совсем? Если нет, то я могу ничего не менять. Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: kambala от Апрель 15, 2014, 13:50 думаю если и уберут, то в Qt 6
Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: Bepec от Апрель 15, 2014, 13:51 Ничего пока не слышно. Молчат как партизаны. Думаю оставят ради совместимости, вот только переиначат как-нить. Всё ж у вас код по локоть в механизме сигнал слотов :)
Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: LisandreL от Апрель 15, 2014, 14:05 Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником. QObject::connectNotify, QObject::disconnectNotify, QObject::isSignalConnected - ничто из этого вашу проблему не решит?Название: Re: Новый connect Qt 5 - другая таблица соединений? Отправлено: Гурман от Апрель 15, 2014, 14:31 Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником. QObject::connectNotify, QObject::disconnectNotify, QObject::isSignalConnected - ничто из этого вашу проблему не решит?Неа... мне надо до соединения выяснять, можно его устанавливать или нет. Поэтому в дескрипторах, в том числе, статических, прописано - вход или выход. Если совместимости не будет - мне надо будет переделывать, добавлять в дескриптор признак вход-выход. Пока обходился просто макросом, проверяющим символ '1' или '2' в начале имени записано. Не смертельно, конечно, но надо понимать, чего ожидать... |