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

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

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

Рис. 16.15 

РСзюмС

Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ GTK+/GNOME для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ выглядящСм интСрфСйсом GUI. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ рассмотрСли с X Window System ΠΈ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρ‹ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ познакомились с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ GTK+ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ систСмы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° сигналов/ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² этого ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° инструмСнтов.

Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ API Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² GTK+, продСмонстрировав ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° простых ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… листингах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. РассмотрСв Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GnomeApp, Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мСню с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… макросов. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

И Π² ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ Π²Ρ‹ создали срСдствами GNOME/GTK+ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диски ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹ΠΌΠΈ CD.

Π’ Π³Π»Π°Π²Π΅ 17 Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств, ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ с GTK+, ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² срСдС KDE, примСняя ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Qt.

Π“Π»Π°Π²Π° 17

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² KDE с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Qt

Π’ Π³Π»Π°Π²Π΅ 16 Π²Ρ‹ познакомились с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ GUI графичСской срСды GNOME/GTK+, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ графичСского интСрфСйса ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ систСмы X. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” лишь ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° истории, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ Π½Π° ΠΏΠΎΠ»Π΅ GUI Π² систСмС Linux β€” графичСская срСда KDE/Qt, ΠΈ Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Π΅Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² условиях ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ.

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Qt написан Π½Π° языкС Π‘++, стандартный язык для написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt/KDE, поэтому Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Π°ΠΌ придСтся ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ языка Π‘ ΠΈ ΠΈΡΠΏΠ°Ρ‡ΠΊΠ°Ρ‚ΡŒ свои Ρ€ΡƒΠΊΠΈ Π‘++. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ этой Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ освСТитС свои знания языка Π‘++, вспомнив ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ наслСдования ΠΈ инкапсуляции, ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСопрСдСлСния ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ обсудим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

β–‘ Π·Π½Π°ΠΊΠΎΠΌΡΡ‚Π²ΠΎ с ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΎΠΌ инструмСнтов Qt;

β–‘ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Qt;

β–‘ ΠΏΡ€Π°ΠΊΡ‚ичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅;

β–‘ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ "сигнал/слот";

β–‘ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Qt;

β–‘ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°;

β–‘ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мСню ΠΈ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ инструмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ KDE;

β–‘ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° срСдствами KDE/Qt вашСго прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² KDE ΠΈ Qt

KDE (Desktop Environment, K-срСда Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола) β€” графичСская срСда Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, основанная Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Qt. Π’ состав KDE Π²Ρ…ΠΎΠ΄ΠΈΡ‚ мноТСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ офисный ΠΏΠ°ΠΊΠ΅Ρ‚, Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ IDE (интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) для программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ KDE/Qt (KDevelop ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»Π°ΡΡŒ Π² Π³Π»Π°Π²Π΅ 9). ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ KDE ΠΏΡ€ΠΈΡˆΠ»ΠΎ, ΠΊΠΎΠ³Π΄Π° компания Apple Π²Ρ‹Π±Ρ€Π°Π»Π° Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ KDE Π² качСствС ядра основного Web-обозрСватСля для систСмы Mac OS X, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Safari ΠΈ извСстного ΠΊΠ°ΠΊ ΠΎΡ‡Π΅Π½ΡŒ быстрый ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ.

Главная страница ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° KDE находится ΠΏΠΎ адрСсу http://www.kde.org, Π½Π° Π½Π΅ΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния, Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ срСды KDE ΠΈ Π΅Π΅ прилоТСния, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, смоТСтС ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ списку адрСсатов Ρ„Π°ΠΉΠ»ΠΎΠ² рассылок ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

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

Π’ΠΎ врСмя написания ΠΊΠ½ΠΈΠ³ΠΈ послСднСй вСрсиСй KDE Π±Ρ‹Π»Π° вСрсия 3.5.7, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта вСрсия Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² соврСмСнныС дистрибутивы Linux, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСна вСрсия KDE 3.5 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ свСТая. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ β€” KDE 4.0. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вСрсии KDE 4.0. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ самая свСТая вСрсия Qt β€” 4.3, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux установлСна вСрсия Qt 3, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вСрсия 3.3, ΠΊΠ°ΠΊ стандартная вСрсия Qt. Π’ этой Π³Π»Π°Π²Π΅ обсуТдаСтся Qt 3.3, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° встрСчаСтся Ρ‡Π°Ρ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программиста, KDE ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ дСсятки Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² KDE, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ унаслСдованных ΠΎΡ‚ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Qt, Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΡ… использованиС. Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ KDE ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‚Π΅ΡΠ½ΡƒΡŽ связь с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом KDE, Ρ‡Π΅ΠΌ сам ΠΏΠΎ сСбС ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов Qt; Ρƒ вас появляСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния сСансами.

Qt β€” Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов GUI, написанный Π½Π° языкС Π‘++. Π­Ρ‚ΠΎ Π΄Π΅Ρ‚ΠΈΡ‰Π΅ норвСТской ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Trolltech, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ, ΠΏΡ€ΠΎΠ΄Π°ΡŽΡ‰Π΅ΠΉ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Qt ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Ρ‹Π½ΠΊΠ°. Trolltech Π²ΠΎ Π²ΡΠ΅ΡƒΡΠ»Ρ‹ΡˆΠ°Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½Ρ‹Π΅ возмоТности ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Qt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ бСсспорно Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈ, Qt поддСрТиваСтся Π² ОБ Linux ΠΈ модификациях UNIX, Windows, Mac OS X ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° встроСнных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, явно ΠΎΡ‚Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρƒ Qt ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°ΠΌΠΈ.

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

БпСциализированная вСрсия Qt выполняСтся Π½Π° сотовых Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° вСрсия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° PDA (Personal Digital Assistant, элСктронный ΡΠ΅ΠΊΡ€Π΅Ρ‚Π°Ρ€ΡŒ) Sharp Zaurus ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Qt Jambi прСдставляСт собой Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° инструмСнтов для языка Java.

Π’ настоящСС врСмя компания Trolltech ΠΏΡ€ΠΎΠ΄Π°Π΅Ρ‚ коммСрчСскиС вСрсии Qt случайным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡΠΌ ΠΏΠΎ Π·Π°Π²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌ Ρ†Π΅Π½Π°ΠΌ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Trolltech ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ бСсплатной вСрсии для сообщСства, Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰Π΅Π³ΠΎ свободноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ свободно Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ΅ΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Qt Open Source Edition для. ОБ Linux, Windows ΠΈ Mac OS X. Π’ ΠΎΡ‚Π²Π΅Ρ‚ Trolltech ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… установок, ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ΅ сообщСство программистов ΠΈ высокоС Ρ€Π΅Π½ΠΎΠΌΠ΅ своСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Qt Open Source Edition распространяСтся Π½Π° условиях Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GPL, Ρ‚.Π΅. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ-Qt, ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ бСсплатно собствСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ трСбованиям Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GPL. Насколько ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Ρƒ свободно распространяСмой вСрсии Π΅ΡΡ‚ΡŒ Π΄Π²Π° основных отличия ΠΎΡ‚ коммСрчСских вСрсий: отсутствиС тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Qt Π² коммСрчСских прилоТСниях. Вся нСобходимая Π²Π°ΠΌ докумСнтация ΠΏΠΎ API Π΅ΡΡ‚ΡŒ Π½Π° Web-сайтС Trolltech ΠΏΠΎ адрСсу http://www.trolltech.com.

Установка Qt

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

$ rpm -Uvh qt-3.3.3-4.i386.rpm

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

Рис. 17.1 


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

$ сd /usr/local

$ tar -xvzf qt-x11-free-3.3.8.tar.gz

$ ./configure

$ make

Π’Π°ΠΊΠΆΠ΅ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» /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 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ установки. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ echo $QTDIR

/usr/lib/qt-3.3

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

# ldconfig

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

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

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

#include <qapplication.h>

#include <qmainwindow.h>


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

 QApplication app(argc, argv);

 QMainWindow* window = new QMainWindow();

 app.setMainWidget(window);

 window->show();

 return app.exec();

}

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

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

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

На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π² ΠΊΠΎΠ½Ρ†Π΅ строки указываСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° -lqt. Π’ вСрсии Qt 3.3, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ -lqui.