Жасмин Бланшет - 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 на С++ - читать книгу онлайн бесплатно, автор Жасмин Бланшет
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

17 QRect cellRect(int row, int column) const;

18 int cellWidth() const { return width() / 3; }

19 int cellHeight() const { return height() / 3; }

20 bool threeInARow(int row1, int col1, int row3, int col3) const;

21 char board[3][3];

22 int turnNumber;

23 };

Класс TicTacToe наследует QWidget и переопределяет функции sizeHint(), paintEvent() и mousePressEvent(). Он также обеспечивает функции gameInProgress() и saveState(), которые мы использовали в нашем классе Application.

01 TicTacToe::TicTacToe(QWidget *parent, const char *name)

02 : QWidget(parent, name)

03 {

04 clearBoard();

05 if (qApp->isSessionRestored())

06 restoreState();

07 setWindowTitle(tr("Tic-Tac-Toe"));

08 }

В конструкторе мы стираем игровое поле и, если приложение было вызвано с опцией —session, вызываем закрытую функцию restoreState() для восстановления старого сеанса.

01 void TicTacToe::clearBoard()

02 {

03 for (int row= 0; row < 3; ++row) {

04 for (int column = 0; column < 3; ++column) {

05 board[row][column] = Empty;

06 }

07 }

08 turnNumber = 0;

09 }

В функции clearBoard() мы стираем все ячейки и устанавливаем turnNumber на значение 0.

01 QString TicTacToe::saveState() const

02 {

03 QFile file(sessionFileName());

04 if (file.open(QIODevice::WriteOnly)) {

05 QTextStream out(&file);

06 for (int row = 0; row < 3; ++row) {

07 for (int column = 0; column < 3; ++column) {

08 out << board[row][column];

09 }

10 }

11 }

12 return file.fileName();

13 }

В функции saveState() мы записываем состояние игрового поля на диск. Формат достаточно простой: «X» для крестиков, «0» для ноликов и «—» для пустых ячеек.

01 QString TicTacToe::sessionFileName() const

02 {

03 return QDir::homePath() + "/.tictactoe_"

04 + qApp->sessionId() + "_" + qApp->sessionKey();

05 }

Закрытая функция sessionFileName() возвращает имя файла для текущего идентификатора сеанса и ключа сеанса. Данная функция используется как в saveState(), так и в restoreState(). Имя файла определяется на основе идентификатора сеанса и ключа сеанса.

01 void TicTacToe::restoreState()

02 {

03 QFile file(sessionFileName());

04 if (file.open(QIODevice::ReadOnly)) {

05 QTextStream in(&file);

06 for (int row = 0; row < 3; ++row) {

07 for (int column = 0; column < 3; ++column) {

08 in >> board[row][column];

09 if (board[row][column] != Empty)

10 ++turnNumber;

11 }

12 }

13 }

14 update();

15 }

В функции restoreState() мы загружаем файл восстанавливаемого сеанса и заполняем игровое поле его информацией. Мы рассчитываем значение переменной turnNumber исходя из количества крестиков и ноликов на игровом поле.

В конструкторе TicTacToe мы вызывали restoreState(), если функция QApplication::isSessionRestored() возвращала true. В этом случае sessionId() и sessionKey() возвращают именно те значения, которые были при прошлом сохранении состояния приложения, а функция sessionFileName() возвращает имя файла того сеанса.

Тестирование и отладка программного кода по управлению сеансами могут быть достаточно утомительным делом, поскольку нам приходится все время входить и выходить из системы. Один из способов, позволяющий избежать этого, заключается в применении стандартной утилиты xsm, предусмотренной в системе X11. При первом вызове xsm на экран выводятся окно менеджера сеансов и окно консольного режима. Все приложения, запускаемые с данного окна консольного режима, будут использовать xsm в качестве своего менеджера сеансов, а не стандартный общесистемный менеджер сеансов. Мы можем затем использовать окно xsm для завершения, рестарта или сброса сеанса и проконтролировать правильность поведения приложения. Подробное описание того, как это делается, вы найдете в сети Интернет по адресу http://doc.trolltech.com/4.1/session.html.

Глава 21. Программирование встроенных систем

Разработка программного обеспечения для таких мобильных устройств как - фото 180

Разработка программного обеспечения для таких мобильных устройств, как карманные компьютеры и мобильные телефоны, может представлять собой очень сложную задачу, поскольку встроенные системы обычно имеют более медленные процессоры, меньший объем постоянной памяти (на флеш-картах или на жестких дисках), меньший объем основной памяти и дисплеи меньшего размера, чем настольные компьютеры.

Система Qtopia Core (ранее она называлась Qt/Embedded) — это версия Qt, оптимизированная для разработки встроенных систем под Linux. Qtopia Core имеет такие же утилиты и программный интерфейс, какие предусмотрены в версиях Qt для настольных компьютеров (Qt/Windows, Qt/X11 и Qt/Mac), а также дополнительно предлагает классы и утилиты, необходимые для программирования встроенных систем. Через двойное лицензирование эта система доступна как для разработок с открытым исходным кодом, так и для коммерческих разработок.

Qtopia Core может работать на любом оборудовании, функционирующем под управлением Linux (включая архитектуры Intel x86, MIPS, ARM, StrongARM, Motorola 68000 и PowerPC). Эта система имеет буфер фреймов основной памяти, отображаемой на дисплей, и поддерживает компилятор С++. В отличие от Qt/X11, она не нуждается в системе X Window; вместо этого в ней реализуется собственная оконная система (own window system — QWS), которая приводит к значительной экономии постоянной и основной памяти. Для еще большего уменьшения расхода памяти можно перекомпилировать Qtopia Core и исключить неиспользуемые возможности. Если заранее известны используемые устройством приложения и компоненты, они могут быть скомпилированы совместно в один исполняемый модуль и собраны статически с библиотеками Qtopia Core.

Кроме того, Qtopia Core использует преимущества многих функций, присущих также версиям Qt для настольных компьютеров, в частности широко применяется неявное совместное использование данных («копирование при записи») как метод экономии основной памяти, поддерживаются пользовательские стили виджетов с помощью класса QStyle и обеспечивается система компоновки виджетов, позволяющая максимально использовать пространство экрана.

Qtopia Core представляет собой базовый компонент, на котором строятся другие предложения по встроенным системам компании «Trolltech»; к ним относятся Qtopia Platform, Qtopia PDA и Qtopia Phone. Они содержат классы и приложения, специально предназначенные для мобильных устройств и способные интегрироваться с некоторыми виртуальными машинами Java независимых разработчиков.

Первое знакомство с Qtopia

Приложения Qtopia Core могут разрабатываться на любой платформе, позволяющей запускать цепочки многоплатформенных инструментальных средств. Наиболее распространено построение кросс-компилятора GNU С++ в системе Unix. Этот процесс упрощается благодаря наличию скрипта и набора пакетов обновлений Дана Кегеля (Dan Kegel), доступного на веб-странице http://kegel.com/crosstool/. Поскольку Qtopia Core имеет программный интерфейс Qt, в большинстве разработках, как правило, можно использовать версию Qt для настольных компьютеров, например Qt/X11 или Qt/Windows.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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