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

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

Интервал:

Закладка:

Сделать

32 };

Виджет AddressBook является главным окном приложения. Предоставляемые им свойства и слоты можно применять при создании сценария. Макрос Q_CLASSINFO() используется для определения идентификаторов класса и интерфейсов, связанных с классом. Они генерируются с помощью таких утилит, как guid или uuid.

В предыдущем примере мы определяли идентификаторы класса и интерфейса при экспорте класса QAxBouncer, используя макрос QAXFACTORY_DEFAULT(). В этом примере мы хотим экспортировать несколько классов, поэтому нельзя использовать макрос QAXFACTORY_DEFAULT(). Мы можем поступать двумя способами:

• можно создать подкласс QAxFactory, переопределить его виртуальные функции для представления информации об экспортируемых нами типах и использовать макрос QAXFACTORY_EXPORT() для регистрации фабрики классов;

• можно использовать макросы QAXFACTORY_BEGIN(), QAXFACTORY_END(), QAXCLASS() и QAXTYPE() для объявления и регистрации фабрики классов. В этом случае потребуется использовать макрос Q_CLASSINFO() для определения идентификаторов класса и интерфейса.

Вернемся к определению класса AddressBook. Третий вызов макроса Q_CLASSINFO() может показаться немного странным. По умолчанию элементы управления ActiveX предоставляют в распоряжение клиентов не только свои собственные свойства, сигналы и слоты, но и свои суперклассы вплоть до QWidget. Атрибут ToSuperClass позволяет определить суперкласс самого высокого уровня (в дереве наследования), который мы собираемся предоставить клиенту. Здесь мы указываем имя класса компонента («AddressBook») в качестве имени экспортируемого класса самого высокого уровня — это значит, что не будут экспортироваться свойства, сигналы и слоты, определенные в суперклассах AddressBook.

01 class ABItem : public QObject, public QListViewItem

02 {

03 Q_OBJECT

04 Q_PROPERTY(QString contact READ contact WRITE setContact)

05 Q_PROPERTY(QString address READ address WRITE setAddress)

06 Q_PROPERTY(QString phoneNumber

07 READ phoneNumber WRITE setPhoneNumber)

08 Q_CLASSINFO("ClassID",

09 "{bc82730e-5f39-4e5c-96be-461c2cd0d282}")

10 Q_CLASSINFO("InterfaceID",

11 "{c8bc1656-870e-48a9-9937-fbe1ceff8b2e}")

12 Q_CLASSINFO("ToSuperClass", "ABItem")

13 public:

14 ABItem(QTreeWidget *treeWidget);

15 void setContact(const QString &contact);

16 QString contact() const { return text(0); }

17 void setAddress(const QString &address);

18 QString address() const { return text(1); }

19 void setPhoneNumber(const QString &number);

20 QString phoneNumber() const { return text(2); }

21 public slots:

22 void remove();

23 };

Класс ABItem представляет один элемент в адресной книге. Он наследует QTreeWidgetItem и поэтому может отображаться в QTreeWidget, и он также наследует QObject и поэтому может экспортироваться как объект СОМ.

01 int main(int argc, char *argv[])

02 {

03 QApplication app(argc, argv);

04 if (!QAxFactory::isServer()) {

05 AddressBook addressBook;

06 addressBook.show();

07 return app.exec();

08 }

09 return app.exec();

10 }

В функции main() мы проверяем, в каком качестве работает приложение: как автономное приложение или как сервер. Опция командной строки —activex распознается объектом QApplication и обеспечивает работу приложения в качестве сервера. Если приложение не является сервером, мы создаем главный виджет и выводим его на экран, как мы обычно делаем для любого автономного приложения Qt.

Кроме опции —activex серверы ActiveX «понимают» следующие опции командной строки:

—regserver — регистрация сервера в системном реестре;

—unregserver — отмена регистрации сервера в системном реестре;

—dumpidl файл — записывает описание сервера на языке IDL (Interface Description Language — язык описания интерфейсов) в указанный файл.

Когда приложение выполняет функции сервера, нам необходимо экспортировать классы AddressBook и ABItem как компоненты СОМ:

QAXFACTORY_BEGIN("{2b2b6f3e-86cf-4c49-9df5-80483b47f17b}",

"{8e827b25-148b-4307-ba7d-23f275244818}")

QAXCLASS(AddressBook)

QAXTYPE(ABItem)

QAXFACTORY_END()

Приведенные выше макросы экспортируют фабрику классов для создания объектов СОМ. Поскольку мы собираемся экспортировать два типа объектов СОМ, мы не можем просто использовать макрос QAXFACTORY_DEFAULT(), как мы делали в предыдущем примере.

Первым аргументом макроса QAXFACTORY_BEGIN() является идентификатор библиотеки типов; второй аргумент представляет собой идентификатор приложения. Между макросами QAXFACTORY_BEGIN() и QAXFACTORY_END() мы указываем все классы, которые могут быть инстанцированы, и все типы данных, доступные как объекты СОМ.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x