β’ Q_OS_SOLARIS
β’ Q_OS_ULTRIX
β’ Q_OS_UNIXWARE
β’ Q_OS_WIN32
β’ Q_OS_WIN64
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Qt ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Q_OS_WIN, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Win32 ΠΈΠ»ΠΈ Win64, ΠΈ Q_OS_UNIX, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΡΠ±Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠ° Unix (Π²ΠΊΠ»ΡΡΠ°Ρ Linux ΠΈ Mac OS X). ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ QSysInfo::WindowsVersion ΠΈΠ»ΠΈ QSysInfo::MacintoshVersion Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Windows (2000, ME ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅) ΠΈΠ»ΠΈ Mac OS X (10.2, 10.3 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅).
ΠΡΠΎΠΌΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Q_CC_MSVC ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Visual Π‘++ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Qt ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΠΈ (handle) Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π° ΡΠΈΡ. 20.2:
MΠ°Ρ OS X:
β’ ATSFontFormatRef QFont::handle();
β’ CGImageRef QPixmap::macCGHandle();
β’ GWorldPtr QPixmap::macQDAlphaHandle();
β’ 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.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ActiveX Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ 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:
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<QVariant>,
β’ SAFEARRAY(BSTR) β QStringList,
β’ SAFEARRAY(BYTE) β QByteArray,
β’ VARIANT β QVariant,
β’ IFontDisp * β QFont,
β’ IPictureDisp * β QPixmap,
β’ Π’ΠΈΠΏ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ β QRect, QSize, QPoint.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° VARIANT_BOOL ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠΏΠΎΠΌ bool, Π° Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° VARIANT_BOOL ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠΏΠΎΠΌ bool &. EcΠ»ΠΈ ΠΏoΠ»yΡeΠ½Π½ΡΠΉ ΡΠΈΠΏ ΡΠ²Π»ΡeΡcΡ ΠΊΠ»accoΠΌ Qt (QString, QDateTime ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅), Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ const (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, const QString &).
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΡΠ»ΠΎΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ QAxObject ΠΈΠ»ΠΈ QAxWidget Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ ΡΠΈΠΏΠ°ΠΌΠΈ Qt, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ QAxBase::generateDocumentation() ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Qt dumpdoc, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Qt tools\activeqt\dumpdoc.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° PlayerWindow:
05 wmp->setProperty("ShowControls", false);
06 wmp->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
07 connect(wmp, SIGNAL(PlayStateChange(int, int)),
08 this, SLOT(onPlayStateChange(int, int)));
09 connect(wmp, SIGNAL(ReadyStateChange(ReadyStateConstants)),
10 this, SLOT(onReadyStateChange(ReadyStateConstants)));
11 connect(wmp, SIGNAL(PositionChange(double, double)),