SlideShare a Scribd company logo
1 of 28
qDebug() << title;
● qDebug() <<
QDate::currentDate().toString();
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 2
Зачем нужны графические
интерфейсы
Нравятся хомячкам
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 3
Мы наш, мы новый ГУЙ построим
ТЗ: Написать приложение принимающее от
пользователя число и возвращающее его
квадрат.
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 4
Здесь вам не тут
Или как всё просто в command line
И сколько всего появляется при
программировании GUI
Но на самом деле GUI тут не причем
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 5
Что такое main loop
Какие события пробуждают
– Пользовательская активность
– Сетевая активность
– Таймеры
Когда main loop не работает
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 6
Расположение и размеры графических
примитивов
Статические
Относительные
– границы
– коэффициент масштабирования
Правила расположения
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 7
Объектно-ориентированное
программирование GUI
Иерархия элементов пользовательского
интерфейса + логика работы этих элементов =
иерархия объектов
Наследование базовых классов графических
примитивов с переопределением поведения
Наследование для задания связи - неудобно
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 8
Коммуникация между объектами
Непосредственный вызов
Регистрация обработчиков (callback)
Модель «сигнал - слот»
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 9
Model-View-Controller
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 10
Экскурс в историю
X11
xView
Motif
Tk
vxWidgets
GTK+
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 11
И, собственно, внезапно, Qt
Современный
Гибкий
Мощный
Документированный
Портируемый
Модный
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 12
Компоненты Qt
графические примитивы
контейнеры
файлы, I/O
model-view
cеть
процессы / потоки
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 13
Виджет
View + Gadget - MVC в одном флаконе
Организация виджетов (лэйаутинг, размеры)
Когда виджеты это плохо
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 14
Signal-slot в Qt
Диспетчер встроен в библиотеку и ее main
loop
В базовом классе QObject реализована
поддержка
От программиста требуется только
коммутировать сигналы и слоты
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 15
Interview (Model-View в Qt4)
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 16
Tulip (ex-QTL)
lists
vectors
hash-tables
maps / multimaps
stack / queue
итераторы
– STL
– Java
– foreach
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 17
И19я
gettext
QObject::tr()
lupdate/lrelease
Интерпретация CTYPE
NB! tr() и static
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 18
Работа с сетью
Клиент и сервер для UNIX/TCP/UDP
SSL
HTTP
аутентификация
connection pool
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 19
Процессы / потоки
system()
QProcess
Threads
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 20
Threads
QFuture / QFutureWatcher
QThead
QMutex, QSemaphor, QWaitCondition,
QReadWriteLocker etc.
QThreadStorage
QAtomicInt
QThreadPool
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 21
QObject и потоки
Принадлежность QObject потоку
Потоки и сигналы
Методы доставки сигналов
– Auto
– Direct
– Queued
– Blocking queued
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 22
Qt Designer
Что такое
Простой
Понятный
Графический
Интеграция с собственными классами
Недостаточная гибкость
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 23
qt-dev-tools
qmake
moc / uic / rcc
lupdate / lrelease
linguist
assistant
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 24
А что еще есть в Qt?
2D / 3D
SQL
DBus
QtWebKit
Qt Quick
Qt Mobility
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 25
Модульность Qt
Core
Gui
Network
SQL
DBus
OpenGL
...
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 26
Язык Ада
и прочие...
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 27
Что плохо?
Qt развращает
Qt не полон
В документации пробелы и непонятки
Разработчики ленивые
Ничего другого нет
25.3.15 /mnt/temp/unoconv/20150325122236/qt-150325072236-conversion-gate01.odppage 28
Спасибо за внимание
Тут был картинка с кавайным котэ, но
LibreOffice упал, и котэ не сохранился.
Пичалька.

More Related Content

Viewers also liked

Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном миреAlexander Gerasiov
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиAlexander Gerasiov
 

Viewers also liked (6)

Package maintaining in Debian
Package maintaining in DebianPackage maintaining in Debian
Package maintaining in Debian
 
Linux drivers
Linux driversLinux drivers
Linux drivers
 
Лицензирование ПО в современном мире
Лицензирование ПО в современном миреЛицензирование ПО в современном мире
Лицензирование ПО в современном мире
 
Brands.i look v5-n6
Brands.i look v5-n6Brands.i look v5-n6
Brands.i look v5-n6
 
RnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработкиRnDM MSU CMC 7.5 Управление процессом разработки
RnDM MSU CMC 7.5 Управление процессом разработки
 
iptables
iptablesiptables
iptables
 

Similar to Qt

измерительное оборудование Ethernet
измерительное оборудование Ethernetизмерительное оборудование Ethernet
измерительное оборудование Etherneteucariot
 
Строим корпоративные сети нового поколения на основе решений Dell Networking
Строим корпоративные сети нового поколения на основе решений Dell NetworkingСтроим корпоративные сети нового поколения на основе решений Dell Networking
Строим корпоративные сети нового поколения на основе решений Dell NetworkingDell_Russia
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Cisco Russia
 
Современные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоСовременные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоTanya Gadzevych
 
Measuring ethernet traffic parameters
Measuring ethernet traffic parametersMeasuring ethernet traffic parameters
Measuring ethernet traffic parametersPavel Kurochkin
 
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...Alexey Paznikov
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППMATLAB
 
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleWebinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleDenis Vasilyev
 
Networks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionNetworks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionVadim Ponomarev
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхCodeFest
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)Ontico
 
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 Поиск неисправностей в беспроводных сетях, управляемых контроллерами Поиск неисправностей в беспроводных сетях, управляемых контроллерами
Поиск неисправностей в беспроводных сетях, управляемых контроллерамиCisco Russia
 
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x IntroductionFedor Vompe
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
 
Advanced IPv4 BGP troubleshooting глазами TAC
Advanced IPv4 BGP troubleshooting глазами TACAdvanced IPv4 BGP troubleshooting глазами TAC
Advanced IPv4 BGP troubleshooting глазами TACCisco Russia
 
Технология Cisco Instant Access для упрощения структуры кампусных сетей
Технология Cisco Instant Access для упрощения структуры кампусных сетейТехнология Cisco Instant Access для упрощения структуры кампусных сетей
Технология Cisco Instant Access для упрощения структуры кампусных сетейCisco Russia
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzerishevchuk
 
Технология Cisco Instant Access для упрощения структуры кампусных сетей.
Технология Cisco Instant Access для упрощения структуры кампусных сетей. Технология Cisco Instant Access для упрощения структуры кампусных сетей.
Технология Cisco Instant Access для упрощения структуры кампусных сетей. Cisco Russia
 
тихонов кв работа с прерываниями в микроконтроллерах в 21 веке
тихонов кв работа с прерываниями в микроконтроллерах в 21 векетихонов кв работа с прерываниями в микроконтроллерах в 21 веке
тихонов кв работа с прерываниями в микроконтроллерах в 21 векеKirill Tikhonov
 

Similar to Qt (20)

измерительное оборудование Ethernet
измерительное оборудование Ethernetизмерительное оборудование Ethernet
измерительное оборудование Ethernet
 
Тест-драйв контроллера ARIS C303
Тест-драйв контроллера ARIS C303Тест-драйв контроллера ARIS C303
Тест-драйв контроллера ARIS C303
 
Строим корпоративные сети нового поколения на основе решений Dell Networking
Строим корпоративные сети нового поколения на основе решений Dell NetworkingСтроим корпоративные сети нового поколения на основе решений Dell Networking
Строим корпоративные сети нового поколения на основе решений Dell Networking
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
 
Современные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ УкркранэнергоСовременные методы конструирования в ПТКИ Укркранэнерго
Современные методы конструирования в ПТКИ Укркранэнерго
 
Measuring ethernet traffic parameters
Measuring ethernet traffic parametersMeasuring ethernet traffic parameters
Measuring ethernet traffic parameters
 
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...
ПВТ - осень 2014 - Лекция 7. Многопоточное программирование без блокировок. М...
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleWebinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
 
Networks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solutionNetworks in the cloud on OpenStask: problems we face and their solution
Networks in the cloud on OpenStask: problems we face and their solution
 
Организация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данныхОрганизация процесса регулярной обработки больших объемов данных
Организация процесса регулярной обработки больших объемов данных
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
 
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 Поиск неисправностей в беспроводных сетях, управляемых контроллерами Поиск неисправностей в беспроводных сетях, управляемых контроллерами
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 
Cpp0x Introduction
Cpp0x IntroductionCpp0x Introduction
Cpp0x Introduction
 
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»
 
Advanced IPv4 BGP troubleshooting глазами TAC
Advanced IPv4 BGP troubleshooting глазами TACAdvanced IPv4 BGP troubleshooting глазами TAC
Advanced IPv4 BGP troubleshooting глазами TAC
 
Технология Cisco Instant Access для упрощения структуры кампусных сетей
Технология Cisco Instant Access для упрощения структуры кампусных сетейТехнология Cisco Instant Access для упрощения структуры кампусных сетей
Технология Cisco Instant Access для упрощения структуры кампусных сетей
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzer
 
Технология Cisco Instant Access для упрощения структуры кампусных сетей.
Технология Cisco Instant Access для упрощения структуры кампусных сетей. Технология Cisco Instant Access для упрощения структуры кампусных сетей.
Технология Cisco Instant Access для упрощения структуры кампусных сетей.
 
тихонов кв работа с прерываниями в микроконтроллерах в 21 веке
тихонов кв работа с прерываниями в микроконтроллерах в 21 векетихонов кв работа с прерываниями в микроконтроллерах в 21 веке
тихонов кв работа с прерываниями в микроконтроллерах в 21 веке
 

Qt