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

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

Интервал:

Закладка:

Сделать

Мы объявляем три свойства для чтения и записи и одно свойство только для чтения. Макрос Q_ENUMS() необходим для указания компилятору moc на то, что SpeedValue имеет тип enum (перечисление). Это перечисление объявляется в открытой секции класса:

09 public:

10 enum SpeedValue { Slow, Normal, Fast };

11 AxBouncer(QWidget *parent = 0);

12 void setSpeed(SpeedValue newSpeed);

13 SpeedValue speed() const { return ballSpeed; }

14 void setRadius(int newRadius);

15 int radius() const { return ballRadius; }

16 void setColor(const QColor &newColor);

17 QColor color() const { return ballColor; }

18 bool isRunning() const { return myTimerId != 0; }

19 QSize sizeHint() const;

20 QAxAggregated *createAggregate();

21 public slots:

22 void start();

23 void stop();

24 signals:

25 void bouncing();

Конструктор AxBouncer является стандартным конструктором виджета с параметром parent. Макрос QAXFACTORY_DEFAULT(), который мы используем для экспорта компонента, предполагает, что у конструктора именно такая сигнатура.

Функция createAggregate() класса QAxBindable переопределяется. Мы рассмотрим ее вскоре.

26 protected:

27 void paintEvent(QPaintEvent *event);

28 void timerEvent(QTimerEvent *event);

29 private:

30 int intervalInMilliseconds() const;

31 QColor ballColor;

32 SpeedValue ballSpeed;

33 int ballRadius;

34 int myTimerId;

35 int x;

36 int delta;

37 };

Защищенная и закрытая секции этого класса имеют тот же вид, как и для стандартного виджета Qt.

01 AxBouncer::AxBouncer(QWidget *parent)

02 : QWidget(parent)

03 {

04 ballColor = Qt::blue;

05 ballSpeed = Normal;

06 ballRadius = 15;

07 myTimerId = 0;

08 x = 20;

09 delta = 2;

10 }

Конструктор AxBouncer инициализирует закрытые переменные этого класса.

01 void AxBouncer::setColor(const QColor &newColor)

02 {

03 if (newColor != ballColor &&

04 requestPropertyChange("color")) {

05 ballColor = newColor;

06 update();

07 propertyChanged("color");

08 }

09 }

Функция setColor() устанавливает значение свойства color (цвет). Она вызывает функцию update() для перерисовки виджета.

Необычной частью являются вызовы функций requestPropertyChange() и propertyChanged(). Эти функции наследуются от класса QAxBindable и в идеальном случае должны вызываться при всяком изменении свойства. Функция requestPropertyChange() спрашивает у клиента разрешение на изменение свойства и возвращает true, если клиент дает такое разрешение. Функция propertyChanged() уведомляет клиента о том, что свойство изменилось.

Устанавливающие свойства функции setSpeed() и setRadius() следуют этому же образцу, и так же работают слоты start() и stop(), поскольку они изменяют значение свойства running (приложение выполняется).

Осталось рассмотреть еще одну интересную функцию—член класса AxBouncer:

QAxAggregated *AxBouncer::createAggregate()

{

return new ObjectSafetyImpl;

}

Функция createAggregate() класса QAxBindable переопределяется. Она позволяет нам реализовать интерфейсы СОМ, которые модуль QAxServer еще не реализовал, или обойти определенные по умолчанию в QAxServer интерфейсы СОМ. Ниже мы делаем это для обеспечения интерфейса IObjectSafety, который используется в Internet Explorer для доступа к свойствам безопасности компонента. Это является стандартным способом устранения непопулярного сообщения об ошибке «Object not safe for scripting» (объект небезопасен при использовании в сценарии) в Internet Explorer.

Ниже приводится определение класса, которое реализует интерфейс IObjectSafety:

01 class ObjectSafetyImpl : public QAxAggregated, public IObjectSafety

02 {

03 public:

04 long queryInterface(const QUuid &iid, void **iface);

05 QAXAGG_IUNKNOWN

06 HRESULT WINAPI GetInterfaceSafetyOptions(REFIID riid,

07 DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions);

08 HRESULT WINAPI SetInterfaceSafetyOptions(REFIID riid,

09 DWORD pdwSupportedOptions, DWORD pdwEnabledOptions);

10 };

Класс ObjectSafetyImpl наследует как QAxAggregated, так и IObjectSafety. Класс QAxAggregated является абстрактным базовым классом, предназначенным для реализации дополнительных интерфейсов СОМ. Объект СОМ, который расширяет QAxAggregated, доступен при помощи функции controllingUnknown(). Этот объект СОМ создается незаметно для пользователя модулем QAxServer.

Макрос QAXAGG_IUNKNOWN обеспечивает стандартную реализацию функций QueryInterface(), AddRef() и Release(). В этих реализациях просто делается вызов одноименных функций для управляющего объекта СОМ.

01 long ObjectSafetyImpl::queryInterface(const QUuid &iid, void **iface)

02 {

03 *iface = 0;

04 if (iid == IID_IObjectSafety) {

05 *iface = static_cast(this);

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

Интервал:

Закладка:

Сделать

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

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


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

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

x