ння на екрані. Віджет, що не вбудований в батьківський віджет, називається вікном. Зазвичай вікно має рамку і смугу із заголовком, хоча використовуючи відповідні прапори вікна можна створити вікно без такого зовнішнього оформлення. У Qt QMainWindow і різноманітні підкласи QDialog є найбільш поширеними типами вікон.
Кожен конструктор віджета приймає один або два стандартних аргументи: * parent=0 є батьком нового віджету. Якщо він дорівнює 0 (за замовчуванням), новий віджет буде вікном. Якщо ні, то він буде нащадком для parent, і буде підкорятися геометрії батька parent (за винятком випадку, коли ви призначите йому прапор Qt :: Window, як прапор вікна). :: WindowFlags f=0 (там, де це можливо) встановлює прапори вікна; значення за замовчуванням підходить майже для всіх віджетів, але, наприклад, щоб отримати вікно без рамки, передбаченої системою, необхідно використовувати спеціальні прапори.
2.5.2 Робота з базами даних засобами Qt
Qt дає можливість створення платформо-незалежних додатків для роботи з базами даних, використовуючи стандартні СУБД. Qt включає драйвера для Oracle, Microsoft SQL Server, Sybase Adaptive Server, IBM DB2, PostgreSQL, MySQL і ODBC-сумісних баз даних.
Робота з базами даних в Qt відбувається на різних рівнях:
Шар драйверів - Включає класи QSqlDriver, QSqlDriverCreator, QSqlDriverCreatorBase, QSqlDriverPlugin і QSqlResult. Цей шар надає низькорівневий міст між певними базами даних і шаром SQL API.
Шар SQL API - Цей шар надає доступ до баз даних. З'єднання встановлюються за допомогою класу QSqlDatabase. Взаємодія з базою даних здійснюється за допомогою класу QSqlQuery. На додаток до класів QSqlDatabase і QSqlQuery шар SQL API спирається на класи QSqlError, QSqlField, QSqlIndex і QsqlRecord.
Наприклад, наступний код демонструє установку з'єднання з базою даних SQLite, де змінна name зберігає адресу файлу бази даних:
db=QSqlDatabase :: addDatabase («QSQLITE»);. setDatabaseName (name); (! Db.open ()) {
/ / код обробки помилки з'єднання
}
Шар користувача інтерфейсу - цей шар пов'язує дані з бази даних з дата-орієнтованість віджетами. Сюди входять такі класи, як QSqlQueryModel, QSqlTableModel і QSqlRelationalTableModel.
При розробки додатку був використаний клас QSqlQueryModel. Цей клас надає модель даних в режимі тільки для читання для результату SQL-запиту. Модель використовується як джерело даних для віджетів відображення інформації в табличному вигляді. Зокрема, такий підхід у додатку використовувався для відображення інформації про наявні в базі даних користувачів і нейронних мережах.
Для того щоб відобразити набір записів, відповідний результату запиту, необхідно попередньо налаштувати модель:
QSqlQuerModel usersModel-> setQuery (getUsersQuery ());
/ / set model columns view> setHeaderData (1, Qt :: Horizontal, tr («Ім'я користувача»), Qt :: DisplayRole);
/ / iнша настройка моделі
Після чого потрібно вказати створений об'єкт в якості моделі представлення даних:
userTableView-> setModel (u...