Содержание
- 2. Сигнал Это методы, которые могут выполнять пересылку сообщений Причина появления сигнала – изменение состояния управляющего элемента
- 3. Слот Это методы, которые присоединяются к сигналам Слоты определяются в классе как public, private, protected В
- 4. Слоты – сигналы Соединение сигнала и слота выполняет метод Object :: connect ( const QObject *
- 5. Пример 1( основная программа main.cpp) #include #include «Counter.h» int main (int argc, char ** argv) {
- 6. Пример 1( основная программа main.cpp) QObject :: connect (&cmd, SIGNAL(clicked()), & counter, SLOT(slotInc())); QObject :: connect
- 7. Counter.h # pragma once #include class Counter : public QObject { Q_OBJECT private : int m_nValue;
- 8. Counter.cpp # include «Counter.h» Counter :: Counter() :QObject(), m_nValue(0) { } void Counter :: slotInc() {
- 9. ЗАМЕЧАНИЯ Следите за совпадением типов сигналов со слотами! connect (obj1, SIGNAL(sig ( int)), obj2, SLOT(slt (int)));
- 10. Разъединение объектов При уничтожении объекта все, связанные с ним соединения, уничтожаются АВТОМАТИЧЕСКИ QObject:: disconnect ( sender,
- 11. Переопределение сигналов QSignalMapper Можно переопределить сигналы Сделать так, чтобы в слот отправлялись значения типов int, QString
- 12. Предположим, что В программе есть 2 кнопки : при нажатии на кнопку 1 нужно отобразить сообщение
- 13. MyClass :: MyClass (QWidget * pwgt) { …. QSignalMapper *psigMapper = new QSignalMapper(this); connect ( psigMapper,
- 14. QPushButton *pcmd2= new QPushButton («Button2»); connect (pcmd2, SIGNAL( clicked()), psigMapper, SLOT(map))); psigMapper - > setMapping (pcmd2,
- 15. Иерархии объектов QObject (QObject * pobj=0); setParent(); setObjectName(); objectName() Указатель на объект- предок
- 16. Иерархии объектов QObject *pobj1= new Object; QObject *pobj2= new Object (pobj1)); QObject *pobj3= new Object (pobj1));
- 17. for ( QObject *pobj = pobj4; pobj; pobj = pobj - > parent()) {qDebug() objectName(); }
- 18. QObject *pobj= pobj1- > findChild ( « the first child of pobj2»); QList pList=pobjl- > findChildren
- 19. dumpObjectInfo(), dumpObjectTree() Имя объекта Класс, от которого создан объект Сигнально-слотовые отношения stdout
- 20. ЗАМЕЧАНИЕ Все объекты должны создаваться в памяти ДИНАМИЧЕСКИ! new
- 21. Метаобъектная информация (QMetaObject) QObject:: metaObject(); qDebug() metaObject ()- > className(); if(pobj1 - > metaObject ()→ className
- 22. Рекомендации для проекта с QT Файлы классов лучше разбивать на 2 части : часть определения класса
- 23. Рекомендации class MyClass : public QObject { Q_OBJECT public: MyClass(); …. }
- 24. Структура qt-проекта Файлы исходного кода: file.h, file.cpp Файл проекта : file.pro Файлы ресурсов: file. qrc make-файл,
- 25. Структура qt-проекта Схема создания исполняемого модуля
- 26. Информация о библиотеке qt QLibraryInfo #include Int main( int argc, char** argv) { qDebug() qDebug() }
- 27. qDebug(), qWarning(), qFatal() Microsoft Visual Studio – окно отладчика OC Linux – стандартный поток вывода ошибок
- 28. Элементы управления
- 30. QWidget QWidget – класс, который является базовым для всех элементов управления. Все, из чего в основном
- 31. QWidget 254 метода, 53 свойства Может служить контейнером для других виджетов Виджеты без предков (виджеты верхнего
- 33. Размер и координаты виджета О X Y ВИДЖЕТ x() y()
- 34. Размер виджета size(), height(), width() x(), y(), pos() geometry() pwgt - > move( 5,5); pwgt -
- 35. Механизм закулисного хранения Технология закулисного хранения ( Backing Store) заключается в запоминании в памяти компьютера растровых
- 36. Установка фона виджета Фон может быть цветом или растровым изображением. Для заполнения цветом сначала создаем объект
- 37. Файл main.cpp #include // int main(int argc, char** argv) { QApplication app(argc, argv); QWidget wgt; QWidget
- 38. Изменение указателя мыши QCursor setCursor() pos(), setPos() QBitmap QPixmap
- 42. Рамки QFrame : public QWidget setFrameStyle() Флаги теней: QFrame: Raised, QFrame:: Plain, QFrame:: Sunken setContentMargin() QFrame
- 44. QStackedWidget (стек виджетов) Класс показывает в отдельно взятый промежуток времени только одного из потомков. Используют тогда,
- 45. Виджет видовой прокрутки Представляет окно для просмотра только части информации. Применяется для отображения информации, размеры которой
- 48. Виджет видовой прокрутки Может размещать виджеты потомков QScrollArea sa; sa. setHorisontalScrollBarPolicy (Qt:: ScrollBarAlways); sa. setVerticalScrollBarPolicy( Qt::
- 49. Управление автоматическим размещением элементов Классы компоновки виджетов (Layouts) – контейнеры, которые после изменения размеров окна автоматически
- 50. Layout managers QLayout ---класс, унаследованный от QObject, QLayoutItem QGridLayout управляет табличным размещением QHBoxLayout , QVBoxLayout –
- 51. setSpacing( pixels) setContentsMargins() – left, right, top, bottom
- 52. addWidget () – добавляет виджеты в компоновку addLayout() – добавляет встроенные методы компоновки removeWidget() – удаляет
- 53. Горизонтальное или вертикальное размещение Классы QBoxLayout QHBoxLayout QVBoxLayout
- 54. QBoxLayout Параметры конструктора: LeftToRight RightToLeft TopToBottom BottomToTop Методы: insertWidget(), insertLayout(), insertSpacing(), insertStretch()
- 56. Фактор растяжения addStretch()
- 58. QHBoxLayout
- 60. QVBoxLayout
- 61. Вложенные размещения
- 63. Табличное размещение QGridLayout pLayout - > addWidget (widget, 17, 1, Qt:: AlignCenter);
- 73. Порядок следования табулятора QWidget:: setTabOrder() QWidget:: setTabOrder( A, B); QWidget:: setTabOrder( B,C);
- 74. Разделители QSplitter QSplitter setOpaqueResize(true);
- 76. Скачать презентацию