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

Интервал:

Закладка:

Сделать

Компоновка виджетов на форме

Существует три основных способа управления компоновкой дочерних виджетов формы: абсолютное позиционирование, ручная компоновка и применение менеджеров компоновки. Мы рассмотрим по очереди каждый из этих методов, используя в качестве нашего примера диалоговое окно Find File (найти файл), показанное на рис. 6.1.

Рис 61 Окно диалога Find File Абсолютное позиционирование является самым - фото 80

Рис. 6.1. Окно диалога Find File.

Абсолютное позиционирование является самым негибким способом компоновки виджетов. Он предусматривает жесткое кодирование в программе размеров и позиций дочерних виджетов формы и фиксированный размер самой формы. Ниже показано, какой вид принимает конструктор FindFileDialog при применении абсолютного позиционирования:

01 FindFileDialog::FindFileDialog(QWidget *parent)

02 : QDialog(parent)

03 {

04 namedLabel->setGeometry(9, 9, 50, 25);

05 namedLineEdit->setGeometry(65, 9, 200, 25);

06 lookInLabel->setGeometry(9, 40, 50, 25);

07 lookInLineEdit->setGeometry(65, 40, 200, 25);

08 subfoldersCheckBox->setGeometry(9, 71, 256, 23);

09 tableWidget->setGeometry(9, 100, 256, 100);

10 messageLabel->setGeometry(9, 206, 256, 25);

11 findButton->setGeometry(271, 9, 85, 32);

12 stopButton->setGeometry(271, 47, 85, 32);

13 closeButton->setGeometry(271, 84, 85, 32);

14 helpButton->setGeometry(271, 199, 85, 32);

15 setWindowTitle(tr("Find Files or Folders"));

16 setFixedSize(365, 240);

17 }

Абсолютное позиционирование имеет много недостатков:

• пользователь не может изменить размер окна;

• некоторый текст может оказаться отсеченным, если пользователь выбирает необычно большой шрифт или если приложение переводится на другой язык;

• виджеты могут иметь неправильные размеры для некоторых стилей;

• расчет позиций и размеров должен производиться вручную. Этот процесс утомителен и приводит к ошибкам; кроме того, это сильно затрудняет сопровождение.

В качестве альтернативы абсолютному позиционированию используется ручная компоновка. При ручной компоновке виджетам все же придаются абсолютные позиции, но размеры виджетов становятся пропорциональными размеру окна, а не жестко кодируются в программе. Это может достигаться путем переопределения функции формы resizeEvent() для установки геометрических размеров своих дочерних виджетов:

01 FindFileDialog::FindFileDialog(QWidget *parent)

02 : QDialog(parent)

03 {

04 SetMinimumSize(265, 190);

05 resize(365, 240);

06 }

07 void FindFileDialog::resizeEvent(QResizeEvent * /* event */)

08 {

09 int extraWidth = width() - minimumWidth();

10 int extraHeight = height() - minimumHeight();

11 namedLabel->setGeometry(9, 9, 50, 25);

12 namedLineEdit->setGeometry(65, 9, 100 + extraWidth, 25);

13 lookInLabel->setGeometry(9, 40, 50, 25);

14 lookInLineEdit->setGeometry(65, 40, 100 + extraWidth, 25);

15 subfoldersCheckBox->setGeometry(9, 71, 156 + extraWidth, 23);

16 tableWidget->setGeometry(9, 100, 156 + extraWidth, 50 + extraHeight);

17 messageLabel->setGeometry(9, 156 + extraHeight, 156 + extraWidth, 25);

18 findButton->setGeometry(171 + extraWidth, 9, 85, 32);

19 stopButton->setGeometry(171 + extraWidth, 47, 85, 32);

20 closeButton->setGeometry(171 + extraWidth, 84, 85, 32);

21 helpButton->setGeometry(171 + extraWidth, 149 + extraHeight, 85, 32);

22 }

Мы устанавливаем в конструкторе FindFileDialog минимальный размер формы на значение 265 × 190 и ее начальный размер на значение 365 × 240. В обработчике событий resizeEvent() мы отдаем все дополнительное пространство виджетам, размеры которых мы хотим увеличить. Это обеспечивает плавное изменение вида формы при изменении пользователем ее размеров.

Рис 62 Изменение размеров диалогового окна допускающего изменение своих - фото 81

Рис. 6.2. Изменение размеров диалогового окна, допускающего изменение своих размеров.

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

Самый удобный метод компоновки виджетов на форме — использование менеджеров компоновки Qt. Менеджеры компоновки обеспечивают осмысленные, принимаемые по умолчанию значения параметров для каждого типа виджета и учитывают идеальный размер каждого виджета, который, в свою очередь, обычно зависит от шрифта виджета, его стиля и содержимого. Менеджеры компоновки также учитывают максимальные и минимальные размеры и автоматически подстраивают компоновку в ответ на изменения шрифта, изменения содержимого и изменения размеров окна.

Существует три наиболее важных менеджера компоновки: QHBoxLayout, QVBoxLayout и QGridLayout. Эти классы наследуют QLayout, который обеспечивает основной каркас для менеджеров компоновки. Все эти три класса полностью поддерживаются Qt Designer и могут также использоваться непосредственно в программе.

Ниже приводится программный код FindFileDialog, в котором используются менеджеры компоновки:

01 FindFileDialog::FindFileDialog(QWidget *parent)

02 : QDialog(parent)

03 {

04 QGridLayout *leftLayout = new QGridLayout;

05 leftLayout->addWidget(namedLabel, 0, 0);

06 leftLayout->addWidget(namedLineEdit, 0, 1);

07 leftLayout->addWidget(lookInLabel, 1, 0);

08 leftLayout->addWidget(lookInLineEdit, 1, 1);

09 leftLayout->addWidget(subfoldersCheckBox, 2, 0, 1, 2);

10 leftLayout->addWidget(tableWidget, 3, 0, 1, 2);

11 leftLayout->addWidget(messageLabel, 4, 0, 1, 2);

12 QVBoxLayout *rightLayout = new QVBoxLayout;

13 rightLayout->addWidget(findButton);

14 rightLayout->addWidget(stopButtpn);

15 rightLayout->addWidget(closeButton);

16 rightLayout->addStretch();

17 rightLayout->addWidget(helpButton) ;

18 QHBoxLayout *mainLayout = new QHBoxLayout;

19 mainLayout->addLayout(leftLayout);

20 mainLayout->addLayout(rightLayout);

21 setLayout(mainLayout);

22 setWindowTitle(tr("Find Files or Folders"));

23 }

Компоновка обеспечивается одним менеджером компоновки по горизонтали QHBoxLayout, одним менеджером компоновки в ячейках сетки QGridLayout и одним менеджером компоновки по вертикали QVBoxLayout. Менеджер QGridLayout слева и менеджер QVBoxLayout справа размещаются рядом внутри внешнего менеджера QHBoxLayout. Кромка по периметру диалогового окна и промежуток между дочерними виджетами устанавливаются в значения по умолчанию, которые зависят от текущего стиля виджета; они могут быть изменены, если использовать функции QLayout::setMargin() и QLayout::setSpacing().

Такое же диалоговое окно можно было бы создать с помощью визуальных средства разработки Qt Designer, задавая приблизительное положение дочерним виджетам, выделяя те, которые необходимо расположить рядом, и выбирая пункты меню Form | Lay Out Horizontally, Form | Lay Out Vertically или Form | Lay Out in a Grid. Мы использовали данный подход в главе 2для создания диалоговых окон Go-to-Cell и Sort приложения Электронная таблица.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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