Читаем QT 4: программирование GUI на С++ полностью

• Модуль QAxContainer позволяет нам использовать объекты СОМ и встраивать элементы управления ActiveX в приложения Qt.

• Модуль QAxServer позволяет нам экспортировать пользовательские объекты СОМ и элементы управления ActiveX, написанные с помощью средств разработки Qt.

Наш первый пример встраивает Media Player (медиаплеер) системы Windows вприложение Qt при помощи модуля QAxContainer. Приложение Qt добавляет кнопку Open, кнопку Play/Pause, кнопку Stop и ползунок в элемент управления ActiveX Media Player системы Windows.

Рис. 20.3. Приложение Media Player.

Главное окно приложения имеет тип PlayerWindow:

01 class PlayerWindow : public QWidget

02 {

03 Q_OBJECT

04 Q_ENUMS(ReadyStateConstants)

05 public:

06 enum PlayStateConstants {

07 Stopped = 0, Paused = 1, Playing = 2 };

08 enum ReadyStateConstants {

09 Uninitialized = 0, Loading = 1, Interactive = 3, Complete = 4 };

10 PlayerWindow();

11 protected:

12 void timerEvent(QTimerEvent *event);

13 private slots:

14 void onPlayStateChange(int oldState, int newState);

15 void onReadyStateChange(ReadyStateConstants readyState);

16 void onPositionChange(double oldPos, double newPos);

17 void sliderValueChanged(int newValue);

18 void openFile();

19 private:

20 QAxWidget *wmp;

21 QToolButton *openButton;

22 QToolButton *playPauseButton;

23 QToolButton *stopButton;

24 QSlider *seekSlider;

25 QString fileFilters;

26 int updateTimer;

27 };

Класс PlayerWindow наследует QWidget. Макрос Q_ENUMS(), расположенный сразу после Q_OBJECT, необходим для указания компилятору moc, что константы ReadyStateConstants, используемые в слоте onReadyStateChange(), имеют тип enum. В закрытой секции мы объявляем переменную—член QAxWidget *.

01 PlayerWindow::PlayerWindow()

02 {

03 wmp = new QAxWidget;

04 wmp->setControl("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}");

Конструктор начинается с создания объекта QAxWidget для инкапсулирования элемента управления ActiveX Media Player системы Windows. Модуль QAxContainer состоит из трех классов: QAxObject инкапсулирует объект COM, QAxWidget инкапсулирует элемент управления ActiveX и QAxBase реализует основную функциональность СОМ для QAxObject и QAxWidget.

Мы вызываем функцию setControl() для объекта QAxWidget с идентификатором класса элемента управления Media Player 6.4 системы Windows. Это создает экземпляр требуемого компонента. С этого момента все свойства, события и методы элемента управления ActiveX доступны как свойства, сигналы и методы Qt объекта QAxWidget.

Рис. 20.4. Дерево наследования для модуля QAxContainer.

Типы данных СОМ автоматически преобразуются в соответствующие типы объектов, как показано на рис. 20.5:

• VARIANT_BOOL — bool,

• char, short, int, long — int,

• unsigned char, unsigned short, unsigned int, unsigned long — uint,

• float, double — double,

• CY — qlonglong, qulonglong,

• BSTR — QString,

• DATE — QDateTime, QDate, QTime,

• OLE_COLOR — QColor,

• SAFEARRAY(VARIANT) — QList,

• SAFEARRAY(BSTR) — QStringList,

• SAFEARRAY(BYTE) — QByteArray,

• VARIANT — QVariant,

• IFontDisp * — QFont,

• IPictureDisp * — QPixmap,

• Тип, определяемый пользователем — QRect, QSize, QPoint.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных