- •Кросс-платформенное программирование
- •Введение
- •1. Основы работы с qt.
- •Теоретическое введение
- •Виджеты
- •3.1. Основы работы с Qt Designer
- •Контрольные вопросы
- •2. Создание графического интерфейса с помощью библиотеки классов qt
- •Теоретическое введение
- •Практическая часть
- •2.2. Создание динамически изменяемых окон
- •2.2.1 Создание формы
- •2.2.2. Подключение формы
- •2.2.3. Наполнение формы
- •2.2.4. Создание динамически изменяемых окон
- •2.3. Установка пиктограммы приложения
- •2.3.1. Установка пиктограммы приложения в Windows
- •Контрольные вопросы
- •3. Разработка текстового редактора в qt.
- •Теоретическое введение
- •1. Подключить библиотеку для работы с файлами:
- •2. Узнать имя файла, используя стандартный диалог (qFileDialog).
- •3. Создать объект файла (qFile).
- •4. Открыть файл (qFile).
- •5. Создать поток для ввода/вывода (qDataStream или qTextStream) и связать его с файлом.
- •6. Считать/записать данные с использованием потока (qDataStream или qTextStream).
- •7. Закрыть файл (qFile).
- •Практическая часть
- •3.1. Создание полноценного текстового редактора
- •3.1.1. Создание меню
- •3.1.2. Редактирование действий
- •3.2. Добавление средств форматирования в текстовый редактор
- •3.2.1. Создание средств форматирования
- •4.2.2. Работа с панелью инструментов
- •3.2.3. Наполнение действий по форматированию функциональностью
- •3.2.4. Самостоятельная работа
- •3.3. Дополнительные возможности
- •3.3.1. Цвет
- •3.3.2. Работа с принтером
- •3.3.3. Добавление стилей, шрифтов их размеров
- •3.3.4. Диалог поиска
- •Контрольные вопросы
- •4. Работа со стилями и создание переносимого мобильного приложения
- •Теоретическое введение
- •Практическая часть
- •4.1. Работа со стилями
- •Контрольные вопросы
- •5. Интернационализация программ в qt.
- •Теоретическое введение
- •Практическая часть
- •5.1. Русификация
- •5.2. Qt Linguist. Создание переводимого интерфейса приложения
- •5.3. Динамическое переключение языков.
- •Контрольные вопросы
- •6. Разработка медиаплеера на qt 5.2
- •Практическая часть
- •6.1. Разработка формы
- •6.2. Наполнение действий функционалом
- •7. Работа с 2d-графикой в qt
- •Практическая часть
- •8. Работа с базами данных в qt
- •Теоретическое введение
- •Практическая часть
- •8.1. Подготовка к подключению бд
- •8.2. Подключение с базе данных и выполнение sql-запросов
- •8.3. Реляционные бд в Qt
- •8.4. Сортировка и поиск по бд
- •Кросс-платформенное программирование
- •Св. План, 2014
- •61070, Харьков–70, ул. Чкалова, 17
- •61070, Харьков–70, ул. Чкалова, 17
8. Работа с базами данных в qt
Цель работы – научиться создавать базы данных и работать с ними в Qt.
Теоретическое введение
База данных представляет собой систему хранения записей, организованных в виде таблиц. База данных может содержать от одной до нескольких сотен таблиц, которые связаны междусобой. Таблица состоит из набора строк и столбцов. Столбцы таблицы имеют имена, и за каждым столбцом закреплен тип и/или область значений. Строки таблицы баз данных называются записями, а ячейки, на которые делится запись – полями. Первичный ключ – это уникальный идентификатор записи, который может представлять собой не только один столбец, но и целую комбинацию столбцов.
Пользователь может выполнять множество разных операций стаблицами: добавлять, изменять и удалять записи, вести поиск и т. д. Для составления подобного рода запросов был разработан язык SQL (Structured Query Language – язык структурированных запросов), который дает возможность не только осуществлять запросы и изменять данные, но и создавать новые базы данных.
В библиотеке Qt имеются драйверы для работы со следующими СУБД:
QDB2 – IBM DB2 версии не ниже 7.1;
QIBASE – Borland InterBase;
QMYSQL – MySQL;
QOCI – Oracle;
QODBC – ODBC (в том числе Microsoft SQL Server);
QPSQL – PostgreSQL;
QSQLITE – SQLite версии не ниже 3;
QSQLITE2 – SQLite версии 2;
QTDS – Sybase Adaptive Server.
Также есть возможность написать свой собственный драйвер для работы с БД, если имеющиеся вас не устраивают.
В Qt Open Source Edition отсутствует поддержка коммерческих СУБД Oracle, Sybase и DB2, т.к. драйверы для них распространяются под лицензией, не совместимой с GPL.
SQLite – компактная встраиваемая система управления реляционной базой данных.
Исходный код библиотеки передан в общественное достояние.
SQLite не обладает клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы.
Т. е. это СУБД, не требующая сервера БД и собственно, клиента.
Практическая часть
8.1. Подготовка к подключению бд
Запустите Qt Creator (C:\Qt\Tools\QtCreator\bin\qtcreator.exe).
Воспользуемся мастером.
Выберите Файл – Новый файл или проект…, а там Приложение – Проект Qt Widget.
Рисунок 8.1 – Создание проекта с помощью мастера
2. Дадим ему некое осмысленное имя, укажем месторасположение проекта (рис. 8.2), нажмем Далее (3 раза) и Завершить.
Рисунок 8.2 – Путь и имя проекта
3. По проекту удобно перемещаться с помощью панели навигации (рис. 8.3).
Рисунок 8.3 – Панель навигации
4. Подключим SQL.
Для использования баз данных, Qt предоставляет отдельный модуль Qt Sql. Чтобы подключить его необходимо дописать в файле проекта (с расширением .pro):
QT += sql widgets
а также, для того чтобы быть в состоянии работать с классами этого модуля, необходимо включить в заголовочный файл главного окна (mainwindow.h):
#include <QtSql>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QMessageBox> //для вывода трассировочных сообщений
Запустите и протестируйте приложение.
