Поработал тут немного с Qt5. Это именно тот Qt5 о котором столько говорили большевики. Для тех кого истерия на этот счёт обошла стороной поясняю: в Qt5 будет QtQuick и жабоскрипт во все поля, C++ заткнут в дальний угол и низведут до уровня языка для критических секций, сам фреймворк будет разрабатываться сообществом ну и прочий распад и разложение
(
Read more... )
Comments 10
а пример кода можно для «сторонних идиотов»?)
Reply
Reply
1) Он предназначен для упрощения работы с петлёй событий;
2) Он позволяет по событию в одном объекте запускать некое действие в другом объекте;
3) Сигналы и слоты - особая улична магия Qt и к C++ не имеет никакого отношения. Для того чтобы они работали нужен специальный код генерируемый метообъектным компилятором.
Пусть у нас есть диалоговое окно с кнопкой, которая по выходу из окна показывает сколько раз её нажали. В случае с Qt4 у нас получается примерно так.
В Qt4 возможны только соединения «сигнал-сигнал» и «сигнал-слот». По этому даже для того чтобы почесать нос по сигналу нужно определить слот (а слоты, могут быть только у Q_OBJECT'ов которые имеют довольно серьёзные ограничения не говоря уж о том, что каждому Q_OBJECT'у полагается интроспекция, которая нам как правило не нужна, а значит только усложняет программу).
В Qt5 с сигналом можно соединить любую функцию, даже анонимную. Наш «пример» будет выглядеть вот такПрватных слото больше нет, макроса Q_OBJECT в начале класса ( ... )
Reply
Reply
Reply
[=]( bool ) { value++; }
Reply
Reply
Leave a comment