Russian Qt Forum

Qt => Общие вопросы => Тема начата: Igors от Май 05, 2015, 17:22



Название: Так что со слотами?
Отправлено: Igors от Май 05, 2015, 17:22
Добрый день

Сконнектил "в новом стиле" используя адреса. Работает, хотя слот не объявлял и Q_OBJECT для приемника не писал. Верно ли я понимаю что moc не создается (не нужен) и новый коннект чисто на темплейтах? Please "ткните носиком" где это написано

Спасибо


Название: Re: Так что со слотами?
Отправлено: Авварон от Май 05, 2015, 17:31
Да, новый коннект чисто на шаблонах. moc нужен чтобы а) генерить сигналы б) генерить мета инфу (получение методов\энумов по имени). Для коннекта слотов теперь б) не нужно


Название: Re: Так что со слотами?
Отправлено: twp от Май 07, 2015, 12:14
New Signal Slot Syntax (https://wiki.qt.io/New_Signal_Slot_Syntax)


Название: Re: Так что со слотами?
Отправлено: Igors от Май 07, 2015, 12:29
New Signal Slot Syntax (https://wiki.qt.io/New_Signal_Slot_Syntax)
Слишком лаконично


Название: Re: Так что со слотами?
Отправлено: Fregloin от Май 08, 2015, 09:26
иногда этот механизм не срабатывает и приходится пользоваться старым стилем, например когда у сигнала есть параметры а слота нет, у меня почему то в данной ситуации тупо не компилируется и ругается на строку с коннектом. подставив SIGNAL(),SLOT() все работет...


Название: Re: Так что со слотами?
Отправлено: Igors от Май 08, 2015, 09:34
иногда этот механизм не срабатывает и приходится пользоваться старым стилем, например когда у сигнала есть параметры а слота нет, у меня почему то в данной ситуации тупо не компилируется и ругается на строку с коннектом. подставив SIGNAL(),SLOT() все работет...
Я постоянно ошибаюсь в SIGNAL/SLOT - они же "просто строки", приходится смотреть уже в рантайме, уходит много времени. Новый сынтаксыс - здорово, но как всегда с этими гребаными темплейтами не поймешь что не так. Вот напр вчера
Код
C++ (Qt)
connect(this, &MyClass::SignalNewFrame, this->m_ScrollArea->widget(), &QWidget::update);
Не компилит, говорит что ни один из прототипов не подходит - но почему  ???


Название: Re: Так что со слотами?
Отправлено: Kurles от Май 08, 2015, 10:09
иногда этот механизм не срабатывает и приходится пользоваться старым стилем, например когда у сигнала есть параметры а слота нет, у меня почему то в данной ситуации тупо не компилируется и ругается на строку с коннектом. подставив SIGNAL(),SLOT() все работет...
Я постоянно ошибаюсь в SIGNAL/SLOT - они же "просто строки", приходится смотреть уже в рантайме, уходит много времени. Новый сынтаксыс - здорово, но как всегда с этими гребаными темплейтами не поймешь что не так. Вот напр вчера
Код
C++ (Qt)
connect(this, &MyClass::SignalNewFrame, this->m_ScrollArea->widget(), &QWidget::update);
Не компилит, говорит что ни один из прототипов не подходит - но почему  ???
Потому что QWidget содержит более одной сигнатуры update, и компилятор не может сам догадаться, какую из доступных сигнатур использовать. решение. (http://stackoverflow.com/questions/16794695/qt5-overloaded-signals-and-slots)


Название: Re: Так что со слотами?
Отправлено: Igors от Май 08, 2015, 10:55
Потому что QWidget содержит более одной сигнатуры update, и компилятор не может сам догадаться, какую из доступных сигнатур использовать. решение. (http://stackoverflow.com/questions/16794695/qt5-overloaded-signals-and-slots)
Понял, спасибо