Жасмин Бланшет - QT 4: программирование GUI на С++

Тут можно читать онлайн Жасмин Бланшет - QT 4: программирование GUI на С++ - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство КУДИЦ-ПРЕСС, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    QT 4: программирование GUI на С++
  • Автор:
  • Жанр:
  • Издательство:
    КУДИЦ-ПРЕСС
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    978-5-91136-038-2
  • Рейтинг:
    3.75/5. Голосов: 121
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Жасмин Бланшет - QT 4: программирование GUI на С++ краткое содержание

QT 4: программирование GUI на С++ - описание и краткое содержание, автор Жасмин Бланшет, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Единственное официальное руководстро по практическому программированию в среде Qt 4.1.

Применяя средства разработки Qt компании «Trolltech», вы сможете создавать на С++ промышленные приложения, которые естественно работают в средах Windows, Linux/UNIX, Linux для встроенных систем без изменения программного кода и Mac Os X. Книга написана сотрудниками компании «Trolltech». Она представляет собой практическое руководство по успешному применению самой мощной из всех созданных до сих пор версий Qt — Qt 4.1.

Из книги «Qt 4: программирование GUI на С++» вы узнаете о наиболее эффективных приемах и методах программирования с применением Qt 4 и овладеете ключевыми технологиями в самых различных областях — от архитектуры Qt модель/представление до мощного графического процессора 2D. Авторы вооружают читателей беспрецедентно глубокими знаниями модели событий и системы компоновки Qt.

На реалистических примерах они описывают высокоэффективные методы во всех областях — от разработки основных элементов графического пользовательского интерфейса до передовых методов интеграции с базой данных и XML. Каждая глава содержит полностью обновленный материал.

Данное издание:

• Включает новые главы по архитектуре Qt 4 модель/представление и поддержке подключаемых модулей Qt, а также краткое введение в программирование встроенных систем на платформе Qtopia.

• Раскрывает все основные принципы программирования в среде Qt — от создания диалоговых и других окон до реализации функциональности приложений.

• Знакомит с передовыми методами управления компоновкой виджетов и обработкой событий.

• Показывает, как можно с наибольшей эффективностью использовать новые программные интерфейсы Qt 4, в частности мощный графический процессор 2D и новые простые в применении классы—контейнеры.

• Представляет передовые методы Qt 4, которых нет ни в одной книге: от создания подключаемых модулей, расширяющих возможности Qt, и приложений, до применения «родных» для конкретной платформы программных интерфейсов.

• Содержит приложение с подробным введением в программирование на С++ в среде Qt для опытных Java—разработчиков.


Жасмин Бланшет (Jasmine Blanchette) — менеджер по документированию и старший разработчик компании «Trolltech» с 2001 года. Он является редактором «Qt Quarterly», информационного бюллетеня компании «Trolltech», и соавтором книги «Qt 3: программирование GUI на С++».

Марк Саммерфилд (Mark Summerfield) — независимый преподаватель и консультант по С++, Qt и Python. Он работал менеджером по документированию в компании «Trolltech» на протяжении трех лет. Марк является соавтором книги «Qt 3: программирование GUI на С++».

QT 4: программирование GUI на С++ - читать онлайн бесплатно полную версию (весь текст целиком)

QT 4: программирование GUI на С++ - читать книгу онлайн бесплатно, автор Жасмин Бланшет
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Рис 105 Приложение Просмотр параметров настройки Settings Viewer Ниже - фото 124

Рис. 10.5. Приложение Просмотр параметров настройки (Settings Viewer).

Ниже приводится фрагмент конструктора:

01 SettingsViewer::SettingsViewer(QWidget *parent)

02 : QDialog(parent)

03 {

04 organization = "Trolltech";

05 application = "Designer";

06 treeWidget = new QTreeWidget;

08 treeWidget->setColumnCount(2);

09 treeWidget->setHeaderLabels(

10 QStringList() << tr("Key") << tr("Value"));

11 treeWidget->header()->setResizeMode(0, QHeaderView::Stretch);

12 treeWidget->header()->setResizeMode(1, QHeaderView::Stretch);

13 …

14 setWindowTitle(tr("Settings Viewer"));

15 readSettings();

16 }

Для получения доступа к параметрам настройки приложения необходимо создать объект QSettings с указанием в параметрах названия организации и имени приложения. Мы устанавливаем значения по умолчанию (приложение «Designer» компании «Trolltech») и затем создаем новый объект QTreeWidget. В конце мы вызываем фyнкцию readSettings().

01 void SettingsViewer::readSettings()

02 {

03 QSettings settings(organization, application);

04 treeWidget->clear();

05 addChildSettings(settings, 0, "");

06 treeWidget->sortByColurnn(0);

07 treeWidget->setFocus();

08 setWindowTitle(tr("Settings Viewer - %1 by %2")

09 .arg(application).arg(organization));

10 }

Параметры настройки приложения хранятся в виде набора ключей и значений, имеющих иерархическую структуру. Закрытая функция addChildSettings() принимает объект параметров настройки, родительский элемент QTreeWidgetItem и текущую «группу». Группа в QSettings аналогична каталогу файловой системы. Функция addChildSettings() может вызывать себя рекурсивно для прохода по произвольной структуре типа дерева. При первом ее вызове из функции readSettings() передается 0, задавая корень в качестве родительского объекта.

01 void SettingsViewer::addChildSettings(QSettings &settings,

02 QTreeWidgetItem *parent, const QString &group)

03 {

04 QTreeWidgetItem *item;

05 settings.beginGroup(group);

06 foreach (QString key, settings.childKeys()) {

07 if (parent) {

08 item = new QTreeWidgetItem(parent);

09 } else {

10 item = new QTreeWidgetItem(treeWidget);

11 }

12 item->setText(0, key);

13 item->setText(1, settings.value(key).toString());

14 }

15 foreach (QString group, settings.childGroups()) {

16 if (parent) {

17 item = new QTreeWidgetItem(parent);

18 } else {

19 item = new QTreeWidgetItem(treeWidget);

20 }

21 item->setText(0, group);

21 addChildSettings(settings, item, group);

22 }

23 settings.endGroup();

24 }

Функция addChildSettings() используется для создания всех элементов QTreeWidgetItem. Она проходит по всем ключам текущего уровня в иерархии параметров настройки и для каждого ключа создает один объект QTableWidgetItem. Если в качестве родительского элемента задан 0, мы создаем дочерний элемент собственно виджета QTreeWidget (т.е. создается элемент верхнего уровня); в противном случае мы создаем дочерний элемент для объекта parent. В первый столбец записывается имя ключа, а во второй столбец — соответствующее ему значение.

Затем эта функция выполняется для каждой группы текущего уровня. Для каждой группы создается новый объект QTreeWidgetItem, причем в первый столбец записывается имя группы. Затем эта функция рекурсивно вызывает саму себя с указанием группового элемента в качестве родительского для заполнения виджета QTreeWidget дочерними элементами группы.

Показанные в данном разделе виджеты отображения элементов позволяют нам использовать стиль программирования, который очень похож на тот, который применялся в ранних версиях Qt: чтение всего набора данных в виджет отображения элементов с использованием объектов, представляющих отдельные элементы данных, и (если элементы допускают редактирование) их запись обратно в источник данных. В последующих разделах мы выйдем за рамки этого простого подхода и воспользуемся всеми преимуществами, которые дает архитектура Qt модель/представление.

Применение заранее определенных моделей

В Qt заранее определено несколько моделей, предназначенных для использования с классами представлений:

• QStringListModel — хранит список строк;

• QStandardltemModel — хранит данные произвольной иерархической структуры;

• QDirModel — формирует структуру локальной файловой системы;

• QSqlQueryModel — формирует набор результата SQL—запроса;

• QSqlTableModel — формирует SQL—таблицу;

• QSqlRelationalTableModel — формирует SQL—таблицу с внешними ключами (foreign keys);

• QSortFilterProxyModel — сортирует и/или пропускает через фильтр другую модель.

В данном разделе мы рассмотрим способы применения моделей QStringListModel, QDirModel и QSortFilterProxyModel. SQL—модели рассматриваются в главе 13.

Давайте начнем с простого диалогового окна, которое может применяться для добавления, удаления и редактирования списка строк QStringList, где каждая строка представляет лидера команды.

Ниже приводится соответствующий фрагмент конструктора:

01 TeamLeadersDialog::TeamLeadersDialog(const QStringList &leaders,

02 QWidget *parent)

03 : QDialog(parent)

04 {

05 model = new QStringListModel(this);

06 model->setStringList(leaders);

07 listView = new QListView;

08 listView->setModel(model);

09 listView->setEditTriggers(QAbstractItemView::AnyKeyPressed

10 | QAbstractItemView::DoubleClicked);

11 …

12 }

Рис 106 Приложение Лидеры команд Team Leaders Мы начнем с создания и - фото 125

Рис. 10.6. Приложение Лидеры команд (Team Leaders).

Мы начнем с создания и заполнения модели QStringListModel. Затем создадим представление QListView и свяжем его с только что созданной моделью. Установим также некоторые переключатели редактирования, чтобы позволить пользователю редактировать строку, просто вводя символ или делая двойной щелчок. По умолчанию все переключатели редактирования сброшены для QListView, фактически делая это представление пригодным только для чтения.

01 void TeamLeadersDialog::insert()

02 {

03 int row = listView->currentIndex().row();

04 model->insertRows(row, 1);

05 QModelIndex index = model->index(row);

07 listView->setCurrentIndex(index);

08 listView->edit(index);

09 }

Когда пользователь нажимает на кнопку Insert (вставка), вызывается слот insert(). Этот слот начинает с получения номера строки текущего элемента в списке. Каждый элемент данных модели имеет соответствующий «индекс модели», представленный объектом QModelIndex. Мы подробно рассмотрим индексы модели в следующем разделе, а в данный момент нам достаточно знать, что индекс имеет три основных компонента: строку, столбец и указатель на модель, к которой он принадлежит. В модели одномерного списка столбец всегда равен 0.

Имея номер строки, мы вставляем одну новую строку в данную позицию. Вставка выполняется в модели, и модель автоматически обновляет списковое представление. Затем мы устанавливаем текущий индекс спискового представления на пустую строку, которую мы только что вставили. Наконец, мы устанавливаем в списковом представлении режим редактирования для новой строки, как будто пользователь нажал какую-нибудь клавишу клавиатуры или дважды щелкнул, чтобы начать редактирование.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Жасмин Бланшет читать все книги автора по порядку

Жасмин Бланшет - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




QT 4: программирование GUI на С++ отзывы


Отзывы читателей о книге QT 4: программирование GUI на С++, автор: Жасмин Бланшет. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x