Вступление Предисловие Благодарности Краткая история Qt Часть I. Основные возможности средств разработки Qt Глава 1. Первое знакомство «Здравствуй, Qt» Взаимодействие с пользователем Компоновка виджетов Использование справочной документации Стили виджетов Глава 2. Создание диалоговых окон Подклассы QDialog Подробное описание технологии сигналов и слотов Метаобъектная система Qt Быстрое проектирование диалоговых окон Изменяющиеся диалоговые окна Динамические диалоговые окна Встроенные классы виджетов и диалоговых окон Глава 3. Создание главных окон Создание подкласса QMainWindow Создание меню и панелей инструментов Создание и настройка строки состояния Реализация меню File Применение диалоговых окон Сохранение настроек приложения Работа со многими документами Экранные заставки Глава 4. Реализация функциональности приложения Центральный виджет Создание подкласса QTableWidget Хранение данных в объектах типа «элемент» Загрузка и сохранение Реализация меню Edit Реализация других меню Создание подкласса QTableWidgetltem Глава 5. Создание пользовательских виджетов Настройка виджетов Qt Создание подкласса QWidget Интеграция пользовательских виджетов в Qt Designer Двойная буферизация Часть II. Средний уровень Qt—программирования Глава 6. Управление компоновкой Компоновка виджетов на форме Стековая компоновка Разделители Области с прокруткой Прикрепляемые виджеты и панели инструментов Многодокументный интерфейс Глава 7. Обработка событий Переопределение обработчиков событий Установка фильтров событий Обработка событий во время продолжительных процессов Глава 8. Графика 2D и 3D Рисование при помощи QPainter Преобразования рисовальщика Высококачественное воспроизведение изображения при помощи QImage Вывод на печатающее устройство Графические средства OpenGL Глава 9. Технология «drag-and-drop» Обеспечение поддержки технологии «drag-and-drop» Поддержка пользовательских типов переносимых объектов Работа с буфером обмена Глава 10. Классы отображения элементов Применение удобных классов отображения элементов Применение заранее определенных моделей Реализация пользовательских моделей Реализация пользовательских делегатов Глава 11. Классы—контейнеры Последовательные контейнеры Как работает неявное совместное использование данных Ассоциативные контейнеры Обобщенные алгоритмы Строки, массивы байтов и объекты произвольного типа Глава 12. Ввод—вывод Чтение и запись двоичных данных Чтение и запись текста Работа с каталогами Ресурсы, внедренные в исполняемый модуль Связь между процессами Глава 13. Базы данных Соединение с базой данных и выполнение запросов Представление данных в табличной форме Создание форм по технологии «master—detail» Глава 14. Работа с сетью Написание FTP—клиентов Написание НТТР—клиента Написание клиент—серверных приложений на базе TCP Передача и прием дейтаграмм UDP Глава 15. XML Чтение документов XML при помощи интерфейса SAX Чтение документов XML при помощи интерфейса DOM Запись документов XML Глава 16. Обеспечение интерактивной помощи Всплывающие подсказки, комментарии в строке состояния и справки «что это такое?» Использование QTextBrowser в качестве простого браузера системы помощи Использование Qt Assistant для мощной интерактивной системы помощи Часть III. Advanced Qt Глава 17. Интернационализация Работа с Unicode Создание переводимого интерфейса приложения Динамическое переключение языков Перевод приложений Глава 18. Многопоточная обработка Создание потоков Синхронизация потоков Взаимодействие с главным потоком Применение классов Qt во вторичных потоках Глава 19. Создание подключаемых модулей Расширение Qt с помощью подключаемых модулей Как обеспечить в приложении возможность подключения модулей Написание подключаемых к приложению модулей Глава 20. Возможности, зависимые от платформы Применение «родных» программных интерфейсов Применение ActiveX в системе Windows Управление сеансами в системе X11 Глава 21. Программирование встроенных систем Первое знакомство с Qtopia Настройка Qtopia Core Приложение А. Установка Qt Замечание о лицензировании Установка Qt/Windows Установка Qt/Mac Установка Qt/X11 Приложение Б. Введение в С++ для программистов Java и С# Первое знакомство с С++ Основные отличия языков Элементарные типы данных Определения класса Указатели Ссылки Массивы Символьные строки Перечисления Имена, вводимые typedef Преобразование типов Перегрузка операторов Типы значений Глобальные переменные и функции Пространства имен Препроцессор Стандартная библиотека С++ 1 2 3 4 5 6 7 8 9 10
Глава 2. Создание диалоговых окон В данной главе вы научитесь создавать диалоговые окна с использованием средств разработки Qt. Диалоговые окна предоставляют пользователю возможность задавать необходимые значения параметров и выбирать определенные режимы работы. Они называются диалоговыми окнами или просто «диалогами» (dialogs), поскольку представляют собой средство, с помощью которого пользователи и приложения могут «переговариваться» друг с другом.
Большинство приложений с графическим пользовательским интерфейсом имеют главное окно с панелью меню и инструментальной панелью, а также десятки диалоговых окон, естественно дополняющих главное окно. Можно также создать приложение из одного диалогового окна, которое будет непосредственно реагировать на выбор пользователя, выполняя соответствующие действия (например, таким приложением может быть калькулятор).
Первое диалоговое окно мы создадим полностью вручную, чтобы было ясно, как выглядит исходный код такой программы. Затем мы покажем способы построении диалоговых окон в Qt Designer, который является средством визуального проектирования в Qt. Использование Qt Designer позволяет получать результат значительно быстрее, чем при ручном кодировании, и полученные в нем различные варианты проектов легче тестировать и изменять в будущем.