• GWorldPtr QPixmap::macQDHandle;

• RgnHandle QRegion::handle;

• HIViewRef QWidget::winId;

Windows:

• HCURSOR QCursor::handle;

• HDC QPaintEngine::getDC;

• HDC QPrintEngine::getPrinterDC;

• HFONT QFont::handle;

• HPALETTE QColormap::hPal;

• HRGN QRegion::handle;

• HWND QWidget::winId;

X11:

• Cursor QCursor::handle;

• Font QFont::handle;

• Picture QPixmap::x11PictureHandle;

• Picture QWidget::x11PictureHandle;

• Pixmap QPixmap::handle;

• QX11Info QPixmap::x11Info;

• QX11Info QWidget::x11Info;

• Region QRegion::handle;

• Screen QCursor::x11Screen;

• SmcConn QSessionManager::handle;

• Window QWidget::handle;

• Window QWidget::winId;

В системе X11 функции QPixmap::x11Info и QWidget::x11Info возвращают объект QX11Info, который обеспечивает различные указатели и описатели с помощью ряда функций, включая display, screen, colormap и visual. Мы можем использовать их для настройки графического контекста, например QWidget или QPixmap.

Приложениям Qt, которым необходимо взаимодействовать с другими инструментальными средствами и библиотеками, часто приходится осуществлять доступ к низкоуровневым событиям (XEvent в системе X11, MSG в системе Windows, Eventref в системе Mac OS X, QWSEvent для Qtopia), прежде чем они будут преобразованы в события QEvent. Мы можем делать это путем создания подкласса QApplication и переопределения соответствующего зависимого от платформы фильтра событий — одну из следующих функций: x11EventFilter, winEventFilter, macEventFilter и qwsEventFilter. Мы можем поступать по-другому и осуществлять доступ к зависимым от платформы событиям, которые передаются заданному QWidget путем переопределения какой-то одной из функций winEvent, x11Event, macEvent и qwsEvent. Это может пригодиться для обработки событий определенного типа, которые Qt обычно игнорирует, например события джойстика.

Более подробную информацию относительно применения зависимых от платформы средств, в том числе как развертывать приложения Qt на различных платформах, можно найти в сети Интернет по адресу http://doc.trolltech.com/4.1/win-system.html.

<p>Применение ActiveX в системе Windows</p>

Технология ActiveX компании Microsoft позволяет приложениям включать в себя компоненты интерфейса пользователя других приложений или библиотек. Она построена на применении технологии СОМ компании Microsoft и определяет один набор интерфейсов приложений, использующих компоненты, и другой набор интерфейсов приложений и библиотек, предоставляющих компоненты.

Версия Qt/Windows для настольных компьютеров (Desktop Edition) обеспечивает рабочую среду ActiveQt для «бесшовного соединения» ActiveX и Qt. ActiveQt состоит из двух модулей:

• Модуль 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:

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже