Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową. Qt sygnały i sloty
Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer: http://latex-beamer.sourceforge.net Qt sygnały i sloty
1 Reakcja na zadarzenia Podstawowe mechanizmy 2 Qt sygnały i sloty
Sposoby reakcji na zdarzenia Podstawowe mechanizmy Metody wirtualne reimplementacja metod poprzez dziedzieczenie. Możliwa tylko we własnych klasach pochodnych. Sygnały i sloty łączenie akcji z reakcją. Można łączyć gotowe elementy bez jakichkolwiek modyfikacji.
Sygnały i sloty Reakcja na zadarzenia Zawartość pliku kanwa.hh: #ifndef KANWA HH #define KANWA HH #include <QWidget > Q OBJECT public slots : signals: #endif
Wywołanie preprocesora języka C Polecenie: g++ -E -I/usr/include/qt5 \ -I/usr/include/qt5/QtCore \ -I/usr/include/qt5/QtGui \ -I/usr/include/qt5/QtWidgets kanwa.hh
Po rozwinięciu czym jest Q OBJECT template <typename T> inline void qt check for QOBJECT macro(const T & q argument) const { int i = qyouforgottheq OBJECT Macro(this, & q argument); i = i; } static const QMetaObject staticmetaobject; virtual const QMetaObject metaobject() const ; virtual void qt metacast(const char ); static inline QString tr(const char s, const char c = 0) { return staticmetaobject.tr(s, c); } static inline QString trutf8(const char s, const char c = 0) { return staticmetaobject.trutf8(s, c); } static inline QString tr(const char s, const char c, int n) { return staticmetaobject.tr(s, c, n); } static inline QString trutf8(const char s, const char c, int n) { return staticmetaobject.trutf8(s, c, n); } virtual int qt metacall(qmetaobject::call, int, void );
Po rozwinięciu czym jest Q OBJECT template <typename T> inline void qt check for QOBJECT macro(const T & q argument) const { int i = qyouforgottheq OBJECT Macro(this, & q argument); i = i; } static const QMetaObject staticmetaobject; virtual const QMetaObject metaobject() const ; virtual void qt metacast(const char ); static inline QString tr(const char s, const char c = 0) { return staticmetaobject.tr(s, c); } static inline QString trutf8(const char s, const char c = 0) { return staticmetaobject.trutf8(s, c); } static inline QString tr(const char s, const char c, int n) { return staticmetaobject.tr(s, c, n); } static inline QString trutf8(const char s, const char c, int n) { return staticmetaobject.trutf8(s, c, n); } virtual int qt metacall(qmetaobject::call, int, void );
Po rozwinięciu czym są sygnały i sloty template <typename T> inline void qt check for QOBJECT macro(const T & q argument) const { int i = qyouforgottheq OBJECT Macro(this, & q argument); i = i; } protected:
Po rozwinięciu czym są sygnały i sloty template <typename T> inline void qt check for QOBJECT macro(const T & q argument) const { int i = qyouforgottheq OBJECT Macro(this, & q argument); i = i; } protected:
Po rozwinięciu czym są sygnały i sloty Q OBJECT public slots : signals: protected:
Po rozwinięciu czym są sygnały i sloty Q OBJECT public slots : signals: protected:
Po rozwinięciu czym są sygnały i sloty Q OBJECT public slots : signals: protected:
Po rozwinięciu czym są sygnały i sloty Q OBJECT public slots : signals: protected:
Koniec prezentacji Dziękuję za uwagę Qt sygnały i sloty