Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 301

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Установка Qt

Если Ρƒ вас Π½Π΅Ρ‚ особых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для компиляции ΠΈΠ· исходного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, самый простой ΠΏΡƒΡ‚ΡŒ β€” Π½Π°ΠΉΡ‚ΠΈ для вашСго дистрибутива Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ RPM. Дистрибутив Fedora Linux 7 поставляСтся с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ qt-3.3.8-4.i386.rpm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

$ <b>rpm -Uvh qt-3.3.3-4.i386.rpm</b>

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Qt ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программирования KDE ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Package Manager (ДиспСтчСр ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²) β€” рис. 17.1.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image066.jpg

Рис. 17.1 

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° исходный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Qt ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, самый свСТий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с FTP-сайта Trolltech ΠΏΠΎ адрСсу ftp://ftp.trolltech.com/qt/source/. ΠŸΠ°ΠΊΠ΅Ρ‚ исходного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉΡˆΠΈΠΌΠΈ инструкциями, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠΌΠΈΡΡ компиляции ΠΈ установки Qt ΠΈ хранящимися Π² Ρ„Π°ΠΉΠ»Π΅ INSTALL, ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ tar.

$ <b>сd /usr/local</b>

$ <b>tar -xvzf qt-x11-free-3.3.8.tar.gz</b>

$ <b>./configure</b>

$ <b>make</b>

Π’Π°ΠΊΠΆΠ΅ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» /etc/ld.so.conf ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

/usr/lib/qt-3.3/lib

Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π² любоС мСсто Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ систСмах Linux Fedora ΠΈ Red Hat эту строку Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ /etc/ld.so.conf.d/qt-i386.conf. Если Π²Ρ‹ устанавливали Qt, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 17.1, этот этап ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½.

Если ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Qt установлСн ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, пСрСмСнная окруТСния

QTDIR
Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ установки. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ <b>echo $QTDIR</b>

/usr/lib/qt-3.3

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ lib Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Ρ„Π°ΠΉΠ» /etc/ld.so.conf. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

# <b>ldconfig</b>

Π˜ΡΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Qt ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваша установка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 17.1).

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 17.1. Окно
QMain

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ (ΠΈΠ»ΠΈ скопируйтС ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π΅ qt1.cpp:

#include &lt;qapplication.h&gt;

#include &lt;qmainwindow.h&gt;

int main(int argc, char **argv) {

Β QApplication app(argc, argv);

Β QMainWindow* window = new QMainWindow();

Β app.setMainWidget(window);

Β window-&gt;show();

Β return app.exec();

}

ΠŸΡ€ΠΈ компиляции Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Qt-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ include ΠΈ lib:

$ <b>g++ -ΠΎ qt1 qt1.cpp -I$QTDIR/include -L$QTDIR/lib -lqui</b>

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π² ΠΊΠΎΠ½Ρ†Π΅ строки указываСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

-lqt
. Π’ вСрсии Qt 3.3, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
-lqui
.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ Qt (рис. 17.2).

$ <b>./qtl</b>

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image067.jpg

Рис. 17.2 

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ GTK+ здСсь Π½Π΅Ρ‚ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Π² сСбя всС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° qt.h, поэтому Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π΅Ρ‚Π΅ΡΡŒ, β€”

QApplication
. Π­Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Qt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΌΡƒ Π² самом Π½Π°Ρ‡Π°Π»Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния Qt Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ°
QApplication
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.
QApplication
ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ встроСнными опСрациями Qt, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ строк ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ внСшним прСдставлСниСм.

Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

QApplication
:
setMainWidget
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Π³Π»Π°Π²Π½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ вашСго прилоТСния, ΠΈ exec, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° отслСТивания событий. ΠœΠ΅Ρ‚ΠΎΠ΄ exec Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π»ΠΈΠ±ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄
QApplication::quit()
, Π»ΠΈΠ±ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚.

QMainWindow
β€” Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΎΠΊΠ½Π° Π² Qt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мСню, панСль инструмСнтов ΠΈ строку состояния. Он Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² этой Π³Π»Π°Π²Π΅, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ возмоТности ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйс.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ обсудим ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ программирования, управляСмого событиями, ΠΈ Π²Ρ‹ вставитС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚

PushButton
.

Π‘ΠΈΠ³Π½Π°Π»Ρ‹ ΠΈ слоты

Как Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π³Π»Π°Π²Π΅ 16, сигналы ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ прилоТСниями GUI для рСагирования Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ GUI. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигналов ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Qt состоит ΠΈΠ· сигналов ΠΈ слотов ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сигналами ΠΈ функциями ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ инструмСнтов GTK+ ΠΈΠ»ΠΈ событиями ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ событий Π² языкС программирования Java.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ сигналы Qt ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ сигналов UNIX, ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π²ΡˆΠΈΡ…ΡΡ Π² Π³Π»Π°Π²Π΅ 11.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ устроСно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, управляСмоС событиями: графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ состоит ΠΈΠ· мСню, ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов, ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΈ мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов GUI, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ взаимодСйствуСт с Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ тСкст Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сигнал, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ

clicked
,
text_changed
ΠΈΠ»ΠΈ
key_pressed
. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π°ΠΌ захочСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° дСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· прилоТСния, ΠΈ Π²Ρ‹ выполняСтС это, связав сигнал с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ»ΠΈ слотом Π½Π° языкС Qt.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сигналов ΠΈ слотов довольно спСцифично β€” Qt опрСдСляСт Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ описанных ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слова,

signals
ΠΈ
slots
для обозначСния Π² вашСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ классов сигналов ΠΈ слотов. Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния читаСмости ΠΈ сопровоТдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап прСпроцСссорной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для поиска ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ этих ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° языкС Π‘++.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ с использованиСм Qt β€” Π½Π΅ настоящий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Π‘++. ΠŸΠΎΡ€ΠΎΠΉ это становится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π‘ΠΌ. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Qt Π½Π° Web-сайтС http://doc.trolltech.com/, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ примСнСния этих Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π² Π‘++. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сигналов ΠΈ слотов Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ отличаСтся ΠΎΡ‚ Microsoft Foundation Classes (MFC, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов Microsoft) Π² ОБ Windows, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка Π‘++.