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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«QT 4: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GUI Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор Жасмин Π‘Π»Π°Π½ΡˆΠ΅Ρ‚

Рис. 1.5. ИзмСнСниС значСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию значСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅.

Π’ строках с 19 ΠΏΠΎ 22 ΠΌΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π½Π°Π±ΠΎΡ€Π½ΠΎΠ³ΠΎ счСтчика ΠΈ ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π·ΠΎΠ½Π΅ Π΅Π³ΠΎ дСйствия. Qt ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ основных класса ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ:

β€’ QHBoxLayout Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ (ΠΈΠ»ΠΈ справа Π½Π°Π»Π΅Π²ΠΎ, Π² зависимости ΠΎΡ‚ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ);

β€’ QVBoxLayout Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ свСрху Π²Π½ΠΈΠ·;

β€’ QGridLayout Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π² ячСйках сСтки.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π² строкС 22 Π²Ρ‹Π·ΠΎΠ² QWidget::setLayout() устанавливаСт ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ для ΠΎΠΊΠ½Π°. Π—Π° кулисами ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ связи QSpinBox ΠΈ QSlider с Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ установлСн ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΠΈ ΠΏΠΎ этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π°ΠΌ Π½Π΅ трСбуСтся Π² явной Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ конструировании Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Π² Π·ΠΎΠ½Π΅ дСйствия ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.

Рис. 1.6. Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ прилоТСния Age.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π² явной Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², QSpinBox ΠΈ QSlider Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈΡΡŒ Π² ряд. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ QHBoxLayout автоматичСски опрСдСляСт Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Π² Π·ΠΎΠ½Ρƒ Π΅Π³ΠΎ дСйствия, Π² зависимости ΠΎΡ‚ потрСбностСй этих Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ нас ΠΎΡ‚ Π½ΡƒΠ΄Π½ΠΎΠ³ΠΎ кодирования размСщСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² нашСго прилоТСния Π½Π° экранС ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠΎΠ½.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ срСдствами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Qt ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π»Π΅Π³ΠΊΠΎ понятСн ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΎΠΊ. Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Qt программистов Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСн ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° сначала ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ графичСскиС элСмСнты, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΡ… свойства. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌ графичСских элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ для Π½ΠΈΡ… Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ графичСского интСрфСйса осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· взаимодСйствиС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ посрСдством примСнСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° сигналов ΠΈ слотов Qt.

ИспользованиС справочной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

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

Π­Ρ‚Π° докумСнтация имССтся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML (ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ doc/html Π² систСмС Qt), ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Qt Assistant (ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Qt) β€” Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ систСмы ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Qt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ срСдствами поиска ΠΈ индСксирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ поэтому быстрСС Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΈΠΌ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Π΅ΠΌ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Для запуска Qt Assistant Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Qt by Trolltech v4.x.y | Assistant Π² мСню Start (пуск) систСмы Windows, Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ assistant Π² систСмС Unix ΠΈΠ»ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Assistant Π² систСмС Mac OS X Finder.

Рис. 1.7. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Qt ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Qt Assistant Π² систСмС Mac OS X.

Бсылки Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«API ReferenceΒ» (ссылки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса) домашнСй страницы ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ классам Qt. На страницС Β«All ClassesΒ» (всС классы) приводится список всСх классов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса Qt. На страницС Β«Main ClassesΒ» (основныС классы) ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ классы Qt. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ Π² этой Π³Π»Π°Π²Π΅.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ описаниС наслСдуСмых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ приводится Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, класс QPushButton Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ show(), Π½ΠΎ это описаниС имССтся Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС QWidget. На рис. 1.8 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° взаимосвязь классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² этой Π³Π»Π°Π²Π΅.

Рис. 1.8. Π”Π΅Ρ€Π΅Π²ΠΎ наслСдования для классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

Бправочная докумСнтация для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии Qt ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΎΠ»Π΅Π΅ старых вСрсий ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎ адрСсу http://doc.trolltech.com/. На этом сайтС Ρ‚Π°ΠΊΠΆΠ΅ находятся ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»Π° Qt Quarterly (Π•ΠΆΠ΅ΠΊΠ²Π°Ρ€Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎ срСдствам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Qt); этот ΠΆΡƒΡ€Π½Π°Π» прСдназначаСтся для программистов Qt ΠΈ распространяСтся ΠΏΠΎ всСм коммСрчСским лицСнзиям.

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ прСдставлСны ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ связи сигналов ΠΈ слотов ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ графичСских элСмСнтов. Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡Π°Π» Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎβ€”ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Если Π²Ρ‹ просмотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Qt, Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ примСняСтся Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ способы примСнСния Π½ΠΎΠ²Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²; Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Π±ΠΎΡ€ Π² Qt ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², элСмСнтов пСрСчислСний ΠΈ Ρ‚.Π΄. Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ приятным ΠΈ простым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Qt.

ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Π»Π°Π²Ρ‹ части I построСны Π½Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π΅, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π² этой Π³Π»Π°Π²Π΅; ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ слСдуСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ графичСским интСрфСйсом, содСрТащим мСню, ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, ΠΎΠΊΠ½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², строку состояния ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° вмСстС с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ срСдствами ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ².

Π‘Ρ‚ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²

ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ экраны Π±Ρ‹Π»ΠΈ взяты ΠΈΠ· систСмы Linux, Π½ΠΎ прилоТСния Qt Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ для любой ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Qt ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ всС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ срСдствами, принятыми Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΈΠΌ инструмСнтариСм.

Рис. 1.9. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стили Π²Ρ‹Π²ΠΎΠ΄Π° графичСских элСмСнтов.

Π’ Qt/X11 ΠΈ Qtopia Core ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΡ‚ΠΈΠ»ΡŒ Plastique, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСняСт ΠΏΠ»Π°Π²Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ… ΡΠΏΠ΅ΠΊΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ налоТСния для обСспСчСния соврСмСнного интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Qt ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ принятый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΡ‚ΠΈΠ»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΡŽ β€”style Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ запуска прилоТСния. НапримСр, для запуска прилоТСния Age со стилСм Motif Π² X11 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

./age -style motif

Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Рис. 1.10. ЗависимыС ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ стили.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…, стили систСм Windows XP ΠΈ Mac доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Β«Ρ€ΠΎΠ΄Π½Ρ‹Ρ…Β» ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° Π±Π°Π·Π΅ присущих Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π“Π»Π°Π²Π° 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° с использованиСм срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Qt. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΠ»ΠΈ просто Β«Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈΒ» (dialogs), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой срСдство, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Β«ΠΏΠ΅Ρ€Π΅Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡΒ» Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с панСлью мСню ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ панСлью, Π° Ρ‚Π°ΠΊΠΆΠ΅ дСсятки Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, СстСствСнно Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ нСпосрСдствСнно Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, выполняя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€).

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΡ‹ создадим ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, ΠΊΠ°ΠΊ выглядит исходный ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ способы построСнии Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π² Qt Designer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся срСдством Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования Π² Qt. ИспользованиС Qt Designer позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π»Π΅Π³Ρ‡Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹ QDialog

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ нашим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Find (Π½Π°ΠΉΡ‚ΠΈ) для поиска Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написано Π½Π° Π‘++. ΠœΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ Π΅Π³ΠΎ собствСнного класса. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΌΡ‹ сдСлаСм Π΅Π³ΠΎ нСзависимым ΠΈ самодостаточным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, со своими сигналами ΠΈ слотами.

Рис. 2.1. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ поиска.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТится Π² Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»Π°Ρ…: finddialog.h ΠΈ finddialog.cpp. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Ρ„Π°ΠΉΠ» finddialog.h: