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

Здесь есть возможность читать онлайн «Жасмин Бланшет - QT 4 - программирование GUI на С++» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: КУДИЦ-ПРЕСС, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

QT 4: программирование GUI на С++: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «QT 4: программирование GUI на С++»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Единственное официальное руководстро по практическому программированию в среде 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 на С++», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

Рис 57 Увеличение изображения виджета Plotter Пользователь может - фото 74

Рис. 5.7. Увеличение изображения виджета Plotter.

Пользователь может увеличивать изображение, несколько раз используя резиновую ленту, уменьшить изображение при помощи кнопки Zoom Out (уменьшить изображение) и затем вновь его увеличить с помощью кнопки Zoom In (увеличить изображение). Кнопки Zoom In и Zoom Out появляются при первом изменении масштаба изображения, и поэтому они не будут заслонять экран, если пользователь не изменяет масштаб представления диаграммы.

Виджет Plotter может содержать данные любого количества кривых. Он также содержит стек параметров графика PlotSettings, каждое значение которого соответствует конкретному масштабу изображения.

Давайте рассмотрим этот класс, начиная с заголовочного файла plotter.h:

01 #ifndef PLOTTER_H

02 #define PLOTTER_H

03 #include

04 #include

05 #include

06 #include

07 class QToolButton;

08 class PlotSettings;

09 class Plotter : public QWidget

10 {

11 Q_OBJECT

12 public:

13 Plotter(QWidget *parent = 0);

14 void setPlotSettings(const PlotSettings &settings);

15 void setCurveData(int id, const QVector &data);

16 void clearCurve(int id);

17 QSize minimumSizeHint() const;

18 QSize sizeHint() const;

19 public slots:

20 void zoomIn();

21 void zoomOut();

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

В классе Plotter мы предоставляем три открытые функции для настройки графика и два открытых слота для увеличения и уменьшения масштаба изображения. Мы также переопределяем функции minimumSizeHint() и sizeHint() класса QWidget. Мы храним точки кривой в векторе QVector, где QPointF — версия QPoint для значений с плавающей точкой.

22 protected:

23 void paintEvent(QPaintEvent *event);

24 void resizeEvent(QResizeEvent *event);

25 void mousePressEvent(QMouseEvent *event);

26 void mouseMoveEvent(QMouseEvent *event);

27 void mouseReleaseEvent(QMouseEvent *event);

28 void keyPressEvent(QKeyEvent *event);

29 void wheelEvent(QWheelEvent *event);

В защищенной секции класса мы объявляем все обработчики событий QWidget, которые хотим переопределить.

30 private:

31 void updateRubberBandRegion();

32 void refreshPixmap();

33 void drawGrid(QPainter *painter);

34 void drawCurves(QPainter *painter);

35 enum { Margin = 50 };

36 QToolButton *zoomInButton;

37 QToolButton *zoomOutButton;

38 QMap > curveMap;

39 QVector zoomStack;

40 int curZoom;

41 bool rubberBandIsShown;

42 QRect rubberBandRect;

43 QPixmap pixmap;

44 };

В закрытой секции класса мы объявляем несколько функций для рисования виджета, константу и несколько переменных—членов. Константа Margin применяется для обеспечения некоторого свободного пространства вокруг диаграммы.

Среди переменных—членов находится pixmap, которая имеет тип QPixmap. Эта переменная содержит копию всего виджета, идентичную его изображению на экране. График всегда сначала строится вне экрана на пиксельной карте, и затем пиксельная карта помещается на виджет.

45 class PlotSettings

46 {

47 public:

48 PlotSettings();

49 void scroll(int dx, int dy);

50 void adjust();

51 double spanX() const { return maxX - minX; }

52 double spanY() const { return maxY - minY; }

53 double minX;

54 double maxX;

55 int numXTicks;

56 double minY;

57 double maxY;

58 int numYTicks;

59 private:

60 static void adjustAxis(double &min, double &max, int &numTicks);

61 };

62 #endif

Класс PlotSettings задает диапазон значений по осям x и y и количество отметок на этих осях. На рис. 5.8 показано соответствие между объектом PlotSettings и виджетом Plotter.

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

Интервал:

Закладка:

Сделать

Похожие книги на «QT 4: программирование GUI на С++»

Представляем Вашему вниманию похожие книги на «QT 4: программирование GUI на С++» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Бертрис Смолл - Дикарка Жасмин
Бертрис Смолл
Георгий Семенов - Жасмин в тени забора
Георгий Семенов
Жасмин Гиллори - Свадебное свидание
Жасмин Гиллори
Жасмин Майер - Онлайн
Жасмин Майер
Отзывы о книге «QT 4: программирование GUI на С++»

Обсуждение, отзывы о книге «QT 4: программирование GUI на С++» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x