Qt 6. Разработка оконных приложений на C++

Qt 6. Разработка оконных приложений на C++

Qt 6. Разработка оконных приложений на C++
Автор: Прохоренок Николай Анатольевич
Дата выхода: 2022
Издательство: «БХВ-Петербург»
Количество страниц: 506
Размер файла: 3,4 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Введение ............................................................................................................................ 9
Глава 1. Первые шаги .................................................................................................. 11
1.1. Создание структуры каталогов .............................................................................................. 12
1.2. Добавление пути в переменную PATH ................................................................................. 12
1.3. Работа с командной строкой .................................................................................................. 14
1.4. Установка Qt 6 ........................................................................................................................ 14
1.5. Настройка редактора Qt Creator ............................................................................................ 23
1.6. Первая программа на Qt ......................................................................................................... 27
1.7. Структура программы ............................................................................................................ 32
1.8. Запуск приложения двойным щелчком на значке файла .................................................... 35
1.9. ООП-стиль создания окна ...................................................................................................... 36
1.10. Создание проекта с формой ................................................................................................. 39
1.11. Доступ к документации ........................................................................................................ 45
Глава 2. Работа с символами и строками ................................................................. 47
2.1. Псевдонимы для элементарных типов .................................................................................. 47
2.2. Класс QChar: символ в кодировке Unicode .......................................................................... 48
2.2.1. Создание объекта ......................................................................................................... 48
2.2.2. Изменение регистра символа ...................................................................................... 50
2.2.3. Проверка типа содержимого символа ........................................................................ 51
2.3. Класс QString: строка в кодировке Unicode ......................................................................... 53
2.3.1. Создание объекта ......................................................................................................... 53
2.3.2. Преобразование объекта в другой тип данных ......................................................... 54
2.3.3. Получение и изменение размера строки .................................................................... 55
2.3.4. Доступ к отдельным символам ................................................................................... 58
2.3.5. Перебор символов строки ........................................................................................... 59
2.3.6. Итераторы ..................................................................................................................... 60
2.3.7. Конкатенация строк ..................................................................................................... 62
2.3.8. Добавление и вставка символов ................................................................................. 63
2.3.9. Удаление символов ...................................................................................................... 64
2.3.10. Изменение регистра символов .................................................................................. 68
2.3.11. Получение фрагмента строки ................................................................................... 69
2.3.12. Поиск в строке ........................................................................................................... 70
2.3.13. Замена в строке .......................................................................................................... 73
2.3.14. Сравнение строк ......................................................................................................... 75
2.3.15. Преобразование строки в число ............................................................................... 77
2.3.16. Преобразование числа в строку ................................................................................ 79
2.3.17. Форматирование строки ............................................................................................ 80
2.3.18. Разделение строки на подстроки по разделителю ..................................................... 81
2.4. Класс QStringList: список строк ............................................................................................ 83
2.4.1. Создание объекта ......................................................................................................... 83
2.4.2. Вставка элементов ....................................................................................................... 84
2.4.3. Определение и изменение количества элементов ..................................................... 87
2.4.4. Удаление элементов .................................................................................................... 88
2.4.5. Доступ к элементам ..................................................................................................... 91
2.4.6. Итераторы ..................................................................................................................... 93
2.4.7. Перебор элементов ...................................................................................................... 95
2.4.8. Сортировка списка ....................................................................................................... 95
2.4.9. Получение фрагмента списка ..................................................................................... 95
2.4.10. Поиск элементов ........................................................................................................ 96
2.4.11. Замена элементов ....................................................................................................... 98
2.4.12. Фильтрация списка .................................................................................................... 99
2.4.13. Преобразование списка в строку ............................................................................ 100
Глава 3. Управление окном приложения ............................................................... 101
3.1. Создание и отображение окна ............................................................................................. 101
3.2. Указание типа окна ............................................................................................................... 103
3.3. Изменение и получение размеров окна .............................................................................. 105
3.4. Местоположение окна на экране ......................................................................................... 109
3.4.1. Получение информации о размере экрана ............................................................... 110
3.5. Указание координат и размеров .......................................................................................... 113
3.5.1. Класс QPoint: координаты точки ............................................................................. 113
3.5.2. Класс QSize: размеры прямоугольной области ....................................................... 115
3.5.3. Класс QRect: координаты и размеры прямоугольной области .............................. 118
3.6. Разворачивание и сворачивание окна ................................................................................. 125
3.7. Управление прозрачностью окна ........................................................................................ 127
3.8. Модальные окна .................................................................................................................... 128
3.9. Смена значка в заголовке окна ............................................................................................ 130
3.10. Изменение цвета фона окна ............................................................................................... 132
3.11. Использование изображения в качестве фона .................................................................. 134
3.12. Создание окна произвольной формы ................................................................................ 136
3.13. Всплывающие подсказки ................................................................................................... 137
3.14. Закрытие окна из программы ............................................................................................ 139
Глава 4. Обработка сигналов и событий ................................................................ 141
4.1. Назначение обработчиков сигналов .................................................................................... 141
4.2. Блокировка и удаление обработчика .................................................................................. 147
4.3. Генерация сигнала из программы ....................................................................................... 151
4.4. Использование таймеров ...................................................................................................... 153
4.5. Класс QTimer: таймер ........................................................................................................... 156
4.6. Перехват всех событий ......................................................................................................... 160
4.7. События окна ........................................................................................................................ 164
4.7.1. Изменение состояния окна ........................................................................................ 164
4.7.2. Изменение положения окна и его размеров ............................................................ 167
4.7.3. Перерисовка окна или его части ............................................................................... 169
4.7.4. Предотвращение закрытия окна ............................................................................... 170
4.8. События клавиатуры ............................................................................................................ 171
4.8.1. Установка фокуса ввода ............................................................................................ 172
4.8.2. Назначение клавиш быстрого доступа ..................................................................... 177
4.8.3. Нажатие и отпускание клавиши клавиатуры ........................................................... 181
4.9. События мыши ...................................................................................................................... 183
4.9.1. Нажатие и отпускание кнопки мыши ....................................................................... 183
4.9.2. Перемещение указателя ............................................................................................ 185
4.9.3. Наведение и выведение указателя ............................................................................ 186
4.9.4. Прокрутка колесика мыши........................................................................................ 186
4.9.5. Изменение внешнего вида указателя мыши ............................................................ 187
4.10. Технология drag & drop ...................................................................................................... 190
4.10.1. Запуск перетаскивания ............................................................................................ 190
4.10.2. Класс QMimeData .................................................................................................... 192
4.10.3. Обработка сброса ..................................................................................................... 195
4.11. Работа с буфером обмена ................................................................................................... 198
Глава 5. Размещение нескольких компонентов в окне ....................................... 199
5.1. Абсолютное позиционирование .......................................................................................... 199
5.2. Горизонтальное и вертикальное выравнивание ................................................................. 200
5.3. Выравнивание по сетке ........................................................................................................ 204
5.4. Выравнивание компонентов формы ................................................................................... 206
5.5. Классы QStackedLayout и QStackedWidget .......................................................................... 209
5.6. Класс QSizePolicy .................................................................................................................. 210
5.7. Объединение компонентов в группу ................................................................................... 212
5.8. Панель с рамкой .................................................................................................................... 214
5.9. Панель с вкладками .............................................................................................................. 216
5.10. Компонент «аккордеон» ..................................................................................................... 221
5.11. Панели с изменяемым размером ....................................................................................... 224
5.12. Область с полосами прокрутки ......................................................................................... 226
Глава 6. Основные компоненты .............................................................................. 229
6.1. Надпись.................................................................................................................................. 229
6.2. Командная кнопка ................................................................................................................ 234
6.3. Переключатель ...................................................................................................................... 237
6.4. Флажок .................................................................................................................................. 238
6.5. Однострочное текстовое поле ............................................................................................. 239
6.5.1. Основные методы и сигналы .................................................................................... 239
6.5.2. Ввод данных по маске ............................................................................................... 245
6.5.3. Контроль ввода .......................................................................................................... 246
6.6. Многострочное текстовое поле ........................................................................................... 247
6.6.1. Основные методы и сигналы .................................................................................... 247
6.6.2. Изменение настроек поля .......................................................................................... 251
6.6.3. Изменение характеристик текста и фона ................................................................. 254
6.6.4. Класс QTextDocument ................................................................................................ 256
6.6.5. Класс QTextCursor ..................................................................................................... 260
6.7. Текстовый браузер ................................................................................................................ 265
6.8. Поля для ввода целых и вещественных чисел .................................................................... 267
6.9. Поля для ввода даты и времени ........................................................................................... 270
6.10. Календарь ............................................................................................................................ 273
6.11. Электронный индикатор .................................................................................................... 276
6.12. Индикатор процесса ........................................................................................................... 277
6.13. Шкала с ползунком ............................................................................................................. 279
6.14. Класс QDial ......................................................................................................................... 281
6.15. Полоса прокрутки ............................................................................................................... 282
Глава 7. Списки и таблицы ....................................................................................... 283
7.1. Раскрывающийся список ...................................................................................................... 283
7.1.1. Добавление, изменение и удаление элементов ....................................................... 283
7.1.2. Изменение настроек................................................................................................... 285
7.1.3. Поиск элемента внутри списка ................................................................................. 287
7.1.4. Сигналы ...................................................................................................................... 288
7.2. Список для выбора шрифта ................................................................................................. 288
7.3. Роли элементов ..................................................................................................................... 289
7.4. Модели ................................................................................................................................... 290
7.4.1. Доступ к данным внутри модели .............................................................................. 290
7.4.2. Класс QStringListModel .............................................................................................. 292
7.4.3. Класс QStandardItemModel........................................................................................ 293
7.4.4. Класс QStandardItem .................................................................................................. 297
7.5. Представления ...................................................................................................................... 302
7.5.1. Класс QAbstractItemView ........................................................................................... 302
7.5.2. Простой список .......................................................................................................... 307
7.5.3. Таблица ....................................................................................................................... 309
7.5.4. Иерархический список .............................................................................................. 312
7.5.5. Управление заголовками строк и столбцов ............................................................. 315
7.6. Управление выделением элементов .................................................................................... 319
7.7. Промежуточные модели ....................................................................................................... 322
Глава 8. Работа с графикой ....................................................................................... 325
8.1. Вспомогательные классы ..................................................................................................... 325
8.1.1. Класс QColor: цвет .................................................................................................... 326
8.1.2. Класс QPen: перо ....................................................................................................... 332
8.1.3. Класс QBrush: кисть .................................................................................................. 333
8.1.4. Класс QLine: линия .................................................................................................... 334
8.1.5. Класс QPolygon: многоугольник .............................................................................. 335
8.1.6. Класс QFont: шрифт .................................................................................................. 337
8.2. Класс QPainter ...................................................................................................................... 340
8.2.1. Рисование линий и фигур .......................................................................................... 341
8.2.2. Вывод текста .............................................................................................................. 344
8.2.3. Вывод изображения ................................................................................................... 346
8.2.4. Преобразование систем координат .......................................................................... 348
8.2.5. Сохранение команд рисования в файл ..................................................................... 349
8.3. Работа с изображениями ...................................................................................................... 350
8.3.1. Класс QPixmap ........................................................................................................... 350
8.3.2. Класс QBitmap ............................................................................................................ 354
8.3.3. Класс QImage ............................................................................................................. 355
8.3.4. Класс QIcon ................................................................................................................ 360
Глава 9. Графическая сцена ...................................................................................... 363
9.1. Класс QGraphicsScene: сцена .............................................................................................. 363
9.1.1. Настройка параметров сцены ................................................................................... 364
9.1.2. Добавление и удаление графических объектов ....................................................... 365
9.1.3. Добавление компонентов на сцену........................................................................... 366
9.1.4. Поиск объектов .......................................................................................................... 367
9.1.5. Управление фокусом ввода ....................................................................................... 368
9.1.6. Управление выделением объектов ........................................................................... 369
9.1.7. Прочие методы и сигналы ......................................................................................... 370
9.2. Класс QGraphicsView: представление ................................................................................. 371
9.2.1. Настройка параметров представления ..................................................................... 372
9.2.2. Преобразования между координатами представления и сцены ............................ 373
9.2.3. Поиск объектов .......................................................................................................... 374
9.2.4. Трансформация систем координат ........................................................................... 375
9.2.5. Прочие методы ........................................................................................................... 375
9.3. Класс QGraphicsItem: базовый класс для графических объектов .................................... 376
9.3.1. Настройка параметров объекта................................................................................. 377
9.3.2. Трансформация объекта ............................................................................................ 381
9.3.3. Прочие методы ........................................................................................................... 381
9.4. Графические объекты ........................................................................................................... 382
9.4.1. Линия .......................................................................................................................... 383
9.4.2. Класс QAbstractGraphicsShapeItem .......................................................................... 383
9.4.3. Прямоугольник .......................................................................................................... 384
9.4.4. Многоугольник .......................................................................................................... 384
9.4.5. Эллипс ......................................................................................................................... 384
9.4.6. Изображение .............................................................................................................. 385
9.4.7. Простой текст ............................................................................................................. 386
9.4.8. Форматированный текст ........................................................................................... 387
9.5. Группировка объектов .......................................................................................................... 389
9.6. Эффекты ................................................................................................................................ 389
9.6.1. Класс QGraphicsEffect ............................................................................................... 390
9.6.2. Тень ............................................................................................................................. 390
9.6.3. Размытие ..................................................................................................................... 392
9.6.4. Изменение цвета ........................................................................................................ 392
9.6.5. Изменение прозрачности .......................................................................................... 393
9.7. Обработка событий ............................................................................................................... 394
9.7.1. События клавиатуры.................................................................................................. 394
9.7.2. События мыши ........................................................................................................... 395
9.7.3. Обработка перетаскивания и сброса ........................................................................ 399
9.7.4. Фильтрация событий ................................................................................................. 401
9.7.5. Обработка изменения состояния объекта ................................................................ 401
Глава 10. Диалоговые окна ....................................................................................... 405
10.1. Пользовательские диалоговые окна .................................................................................. 405
10.2. Класс QDialogButtonBox .................................................................................................... 408
10.3. Класс QMessageBox ............................................................................................................ 411
10.3.1. Основные методы и сигналы ................................................................................. 413
10.3.2. Окно для вывода обычного сообщения ................................................................ 415
10.3.3. Окно запроса подтверждения ................................................................................ 415
10.3.4. Окно для вывода предупреждающего сообщения ............................................... 416
10.3.5. Окно для вывода критического сообщения.......................................................... 417
10.3.6. Окно «О программе» .............................................................................................. 418
10.3.7. Окно «About Qt» ..................................................................................................... 418
10.4. Класс QInputDialog ............................................................................................................. 418
10.4.1. Основные методы и сигналы ................................................................................. 419
10.4.2. Окна для ввода строки ........................................................................................... 422
10.4.3. Окно для ввода целого числа ................................................................................. 423
10.4.4. Окно для ввода вещественного числа ................................................................... 424
10.4.5. Окно для выбора пункта из списка ....................................................................... 425
10.5. Класс QFileDialog ............................................................................................................... 426
10.5.1. Основные методы и сигналы ................................................................................. 426
10.5.2. Окно для выбора каталога ..................................................................................... 429
10.5.3. Окно для открытия файла ...................................................................................... 430
10.5.4. Окно для сохранения файла ................................................................................... 431
10.6. Окно для выбора цвета ....................................................................................................... 432
10.7. Окно для выбора шрифта ................................................................................................... 433
10.8. Окно для вывода сообщения об ошибке ........................................................................... 434
10.9. Окно с индикатором хода процесса .................................................................................. 435
10.10. Создание многостраничного мастера ............................................................................. 437
10.10.1. Класс QWizard ....................................................................................................... 437
10.10.2. Класс QWizardPage .............................................................................................. 442
Глава 11. Создание SDI- и MDI-приложений......................................................... 447
11.1. Создание главного окна приложения ................................................................................ 447
11.2. Меню .................................................................................................................................... 454
11.2.1. Класс QMenuBar ..................................................................................................... 454
11.2.2. Класс QMenu ........................................................................................................... 455
11.2.3. Контекстное меню .................................................................................................. 459
11.2.4. Класс QAction .......................................................................................................... 460
11.2.5. Объединение переключателей в группу ............................................................... 464
11.3. Панели инструментов ......................................................................................................... 466
11.3.1. Класс QToolBar ....................................................................................................... 466
11.3.2. Класс QToolButton .................................................................................................. 469
11.4. Прикрепляемые панели ...................................................................................................... 470
11.5. Управление строкой состояния ......................................................................................... 472
11.6. MDI-приложения ................................................................................................................ 474
11.6.1. Класс QMdiArea ...................................................................................................... 474
11.6.2. Класс QMdiSubWindow ........................................................................................... 478
11.7. Добавление значка приложения в область уведомлений ................................................ 479
Заключение ................................................................................................................... 483
Приложение. Описание электронного архива ....................................................... 485
Предметный указатель .............................................................................................. 487

Описываются базовые возможности библиотеки Qt, позволяющей создавать приложения с графическим интерфейсом на языке C++. Книга ориентирована на тех, кто уже знаком с языком программирования C++ и хотел бы научиться разрабатывать оконные приложения. Рассматриваются способы обработки событий, управление свойствами окна, создание формы, а также все основные компоненты (кнопки, текстовые поля, списки, таблицы, меню и др.) и варианты их размещения внутри окна. Книга содержит большое количество практических примеров, помогающих начать разрабатывать приложения с графическим интерфейсом самостоятельно. Она будет полезна в качестве самоучителя для начинающих разработчиков. Читатели, уже имеющие опыт, могут использовать ее как удобный справочник.


Похожее:

Список отзывов:

Нет отзывов к книге.