ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Qtopia Core ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠΈΡΡΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΡΠΌ Qt Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (Β«ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈΒ») ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° QStyle ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠΊΡΠ°Π½Π°.
Qtopia Core ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠΎΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Β«TrolltechΒ»; ΠΊ Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ Qtopia Platform, Qtopia PDA ΠΈ Qtopia Phone. ΠΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ Java Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Qtopia
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Qtopia Core ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° GNU Π‘++ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Unix. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΈ Π½Π°Π±ΠΎΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΠ°Π½Π° ΠΠ΅Π³Π΅Π»Ρ (Dan Kegel), Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ http://kegel.com/crosstool/. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Qtopia Core ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Qt, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ Qt Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Qt/X11 ΠΈΠ»ΠΈ Qt/Windows.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Qtopia Core ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ βembedded ΡΠΊΡΠΈΠΏΡΠ° configure. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ARMβΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
./configure -embedded arm
ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Qt mkspecs/qws.
Qtopia Core ΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±ΡΡΠ΅ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ Linux (ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ). ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΡΡΠ΅ΡΡ ΡΡΠ΅ΠΉΠΌΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ /dev/fb0.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qtopia Core ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΡΠΊΡΠ°Π½Π° ΠΈ Π·Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΡΡΠΊΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Qtopia Core ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠΏΡΠΈΡ βqws ΠΈΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° QApplication ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ QApplication::GuiServer.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Qtopia Core ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½ΡΡΡΠ΅Π½Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠΈΡΡΡΡ ΡΠ°ΠΌΠΈΡ ΡΠ΅Π±Ρ Π² ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΊΠΎΠ½. ΠΡΠΎ ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Qtopia Core ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊ QPainter Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΈΡ ΡΠ΅Π±Ρ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡ QDirectPainter.
ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QCOP. ΠΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π», ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ QCopChannel ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ²ΡΠ·Ρ Ρ Π΅Π³ΠΎ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ received(). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
QCopChannel *channel = new QCopChannel("System", this);
connect(channel, SIGNAL(received(const QString &, const QByteArray &)),
this, SLOT(received(const QString &, const QByteArray &)));
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ QCOP ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° QByteArray. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ QCopChannel::send() ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
QByteArray data;
QDataStream out(&data, QIODevice::WriteOnly);
out << QDateTime::currentDateTime();
QCopChannel::send("System", "clockSkew(QDateTime)", data);
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠΈΠ΅ΠΌ: Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ QDataStream, ΠΈ Π΄Π»Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΠΈΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ Π‘++.
ΠΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qtopia Core Π²Π»ΠΈΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ QWS_MOUSE_PROTO ΠΈ QWS_KEYBOARD, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΡΡΠΊΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ http://doc.trolltech.com/4.1/emb-envvars.html.
ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Unix, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΡΡΠ΅ΠΉΠΌΠΎΠ² Qtopia (qvfb) β ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ X11, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π·Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠΎΠ². ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΊΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π² Qtopia Core Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠΏΡΠΈΡ βqvfb ΡΠΊΡΠΈΠΏΡΡ configure. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠ° ΠΎΠΏΡΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΡΡΠ΅ΠΉΠΌΠΎΠ² ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ tools/qvfb ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
qvfb -width 320 -height 480 -depth 32
ΠΡΡΠ³ΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ VNC (Virtual Network Computing β Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ VNC Π² Qtopia Core ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ ΠΎΠΏΡΠΈΡ βqtβgfxβvnc Π² ΡΠΊΡΠΈΠΏΡ configure. ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Qtopia Core Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ βdisplay VNC:0 ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° VNC, ΡΡΡΠ»Π°ΡΡΠ΅Π³ΠΎΡΡ Π½Π° Ρ ΠΎΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π°Π·ΠΌΠ΅Ρ ΡΠΊΡΠ°Π½Π° ΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ QWS_SIZE ΠΈ QWS_DEPTH Π½Π° Ρ ΠΎΡΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Qtopia Core (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, QWS_SIZE=320x480 ΠΈ QWS_DEPTH=32).
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Qtopia Core
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Qtopia Core ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠΎΡΡΠ°Π² Qtopia Core Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΡΠ½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, QT_NO_FILEDIALOG ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠ»Π°ΡΡ QFileDialog ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ QtGui, a QT_NO_I18N ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ src/corelib/qfeatures.txt.
Qtopia Core ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (minimum, small, medium, large ΠΈ dist), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ src/corelib/qconfig_xxx.h. ΠΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΠΈ βqconfig xxx Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠ° configure, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
./configure -qconfig small
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» qconfigβxxx.h ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠΈΠ»ΠΈΡΡ qconfig, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Qt tools.
Qtopia Core ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ:
β’ QScreen β Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΠΊΡΠ°Π½Π°,
β’ QScreenDriverPlugin β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΠΊΡΠ°Π½Π°,
β’ QWSMouseHandler β Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΌΡΡΠΊΠΈ,
β’ QMouseDriverPlugin β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΌΡΡΠΊΠΈ,
β’ QWSKeyboardHandler β Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ,
β’ QKbdDriverPlugin β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ,
β’ QWSInputMethod β ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π²ΠΎΠ΄Π°,
β’ QDecoration β ΡΡΠΈΠ»ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½,
β’ QDecorationPlugin β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π° ΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ configure Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ βhelp.
ΠΡΠ°ΠΉΠ²Π΅Ρ ΡΠΊΡΠ°Π½Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ βdisplay ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Qtopia Core, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΈΠ»ΠΈ ΠΏΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ QWS_DISPLAY. ΠΡΠ°ΠΉΠ²Π΅Ρ ΠΌΡΡΠΊΠΈ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ QWS_MOUSE_PROTO, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΏ:ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π³Π΄Π΅ ΡΠΈΠΏ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ β ΠΏΡΡΡ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, QWS_MOUSE_PROTO=IntelliMouse:/dev/mouse). ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ QWS_KEYBOARD. ΠΠ΅ΡΠΎΠ΄Ρ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π² ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ QWSServer::setCurrentInputMethod() ΠΈ QApplication::qwsSetDecoration().
Π‘ΡΠΈΠ»ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΡΠΈΠ»Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ QStyle. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Windows Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠΈΠ»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ Plastique Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠΈΠ»Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ². ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΈΠ»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡ QWSServer ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ Qtopia Core, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ QWSServer ΡΠ΅ΡΠ΅Π· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ qwsServer, ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ QApplication.