Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
IDZ DO
IDZ DO
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
TWÓJ KOSZYK
TWÓJ KOSZYK
CENNIK I INFORMACJE
CENNIK I INFORMACJE
CZYTELNIA
CZYTELNIA
TCL-TK.
Programowanie
Autor: Dariusz Chrobak
ISBN: 83-7197-969-X
Format: B5, stron: 272
Jêzyk programowania Tcl (Tool Command Language) nale¿y do licznej rodziny
interpretowanych jêzyków skryptowych. Interpreter Tcl mo¿e zostaæ uruchomiony pod
kontrol¹ wielu systemów operacyjnych, miêdzy innymi Linuksa i Windows. Aplikacja Tcl
jest niemal w pe³ni niezale¿na od wyboru platformy systemowej. Tcl pozwala miêdzy
innymi na uruchamiania wielu procesów (programów), korzystanie z przekierowañ
wejcia-wyjcia, tworzenie potoków poleceñ i tworzenie gniazd sieciowych do
komunikacji TCP/IP. Rozszerzeniem Tcl o trudnym do przecenienia znaczeniu jest pakiet
narzêdziowy Tk. Dziêki poleceniom Tk tworzenie i manipulowanie okienkami
sk³adaj¹cymi siê na graficzny interfejs u¿ytkownika (GUI) jest niezwykle proste.
Jeli potrzebny jest Ci wygodny jêzyk skryptowy, w którym mo¿na szybko tworzyæ
niezale¿ne od systemu operacyjnego aplikacje o rozbudowanym interfejsie u¿ytkownika,
Tcl/Tk mo¿e okazaæ siê wymarzonym narzêdziem do tego celu.
Ksi¹¿ka „Tcl/Tk. Programowanie” to wyczerpuj¹cy i kompletny podrêcznik tego jêzyka
programowania, wzbogacony wieloma przydatnymi przyk³adami.
W ksi¹¿ce omówiono miêdzy innymi:
• Podstawy Tcl, rodowisko pracy programisty
• Polecenia, zmienne, wykonywanie obliczeñ, instrukcje steruj¹ce, procedury i inne
elementy sk³adni jêzyka
• Struktury danych: ³añcuchy i wyra¿enia regularne, listy i tablice
• Korzystanie z plików, potoków i gniazd sieciowych
• Pakiety i biblioteki, dostêp do baz danych
• Tworzenie interfejsu u¿ytkownika z wykorzystaniem Tk
• Obs³ugê zdarzeñ
• Kontrolki dostêpne w Tk, tworzenie menu aplikacji
Spis treści
Wstęp ............................................................................................... 9
Rozdział 1. Instalacja środowiska ...................................................................... 11
Środowisko ............................................................................................................11
Powłoka tclsh .........................................................................................................13
Rozdział 2. Podstawy Tcl................................................................................... 15
Polecenia i zmienne ................................................................................................15
Polecenia..........................................................................................................15
Zmienne...........................................................................................................16
Tworzenie zmiennych .......................................................................................16
Usuwanie zmiennych.........................................................................................17
Pobieranie wartości zmiennej .............................................................................17
Przytaczanie, lewy ukośnik, komentarze ...................................................................18
Przytaczanie łańcuchów.....................................................................................18
Przytaczanie poleceń .........................................................................................18
Lewy ukośnik ...................................................................................................19
Polecenie subst .................................................................................................19
Komentarze......................................................................................................20
Obliczenia..............................................................................................................20
Wyrażenia Tcl ..................................................................................................20
Funkcje matematyczne ......................................................................................21
Operatory.........................................................................................................22
Przykłady.........................................................................................................24
Dzielenie ....................................................................................................24
Mnożenie....................................................................................................24
Dodawanie i odejmowanie ...........................................................................24
Porównywanie liczb i łańcuchów ..................................................................25
Operator warunkowy ...................................................................................25
Polecenie eval...................................................................................................25
Instrukcje sterujące .................................................................................................26
Instrukcja warunkowa if ....................................................................................26
Instrukcja warunkowa switch .............................................................................27
Instrukcja sterująca while...................................................................................28
Instrukcja sterująca for ......................................................................................28
Instrukcja sterująca foreach ...............................................................................29
Procedury ..............................................................................................................29
Definiowanie i wywoływanie procedur ...............................................................29
Stos wywołań ...................................................................................................31
4
Tcl-Tk. Programowanie
Programowanie zdarzeniowe....................................................................................33
Polecenie vwait.................................................................................................34
Polecenie after ..................................................................................................34
Niektóre zmienne specjalne i polecenia systemowe Tcl ..............................................35
Zmienne specjalne.............................................................................................35
Polecenia systemowe.........................................................................................37
Rozdział 3. Struktury danych ............................................................................. 43
Łańcuchy i wyrażenia regularne ...............................................................................43
Polecenia string.................................................................................................43
Polecenia: append, format, scan .........................................................................49
Wyrażenia regularne..........................................................................................52
Listy ......................................................................................................................56
Tworzenie list ...................................................................................................56
Operacje dotyczące list ......................................................................................57
Tablice...................................................................................................................60
Tworzenie tablic ...............................................................................................60
Polecenia array .................................................................................................61
Przestrzenie nazw ...................................................................................................64
Procedury i zmienne..........................................................................................65
Importowanie poleceń .......................................................................................67
Polecenia odłożone............................................................................................67
Inne polecenia namespace..................................................................................68
Rozdział 4. Wymiana danych.............................................................................. 71
Pliki.......................................................................................................................71
Polecenia file ....................................................................................................71
Polecenie glob..................................................................................................77
Dostęp do plików....................................................................................................78
Polecenia open i close........................................................................................79
Konfiguracja kanału IO .....................................................................................80
Polecenia IO oraz polecenia: tell, seek i eof.........................................................82
Wykorzystanie poleceń IO .................................................................................83
Zdarzenia IO i polecenie fileevent ......................................................................85
Procesy, przekierowania i potoki ..............................................................................87
Uruchamianie podprocesów, polecenie exec ........................................................87
Przechwytywanie błędów ..................................................................................90
Wymiana danych między procesami ...................................................................91
Gniazda .................................................................................................................92
Polecenie socket ...............................................................................................93
Komunikacja z serwerem www..........................................................................95
Rozdział 5. Pakiety i biblioteki skryptów ............................................................ 97
Ścieżki dostępu.......................................................................................................97
Biblioteki ...............................................................................................................97
Pakiety ..................................................................................................................99
Dostęp do baz danych ........................................................................................... 101
Rozdział 6. Wprowadzenie do Tk ...................................................................... 103
Aplikacja Tk ........................................................................................................ 103
Kontrolki ............................................................................................................. 106
Tworzenie i usuwanie kontrolek ............................................................................. 107
Zarządcy rozkładów.............................................................................................. 108
Wymiana informacji.............................................................................................. 109
Spis treści
5
Rozdział 7. Konfiguracja kontrolek ................................................................... 111
Opcje i plik zasobów............................................................................................. 111
Rozmiary ............................................................................................................. 114
Krawędzie............................................................................................................ 115
Kolory ................................................................................................................. 115
Kursor myszki ...................................................................................................... 117
Kursor wprowadzania tekstu.................................................................................. 118
Czcionki .............................................................................................................. 119
Tekst i obrazki...................................................................................................... 122
Tekst ............................................................................................................. 122
Obrazki .......................................................................................................... 123
Obrazek typu bitmap ................................................................................. 124
Obrazek typu photo ................................................................................... 126
Polecenia związane z obrazkami....................................................................... 127
Wykorzystanie................................................................................................ 129
Rozdział 8. Rozkłady........................................................................................ 131
Zarządca geometrii pack........................................................................................ 131
Wybór strony upakowania ............................................................................... 132
Wypełnianie obszarów .................................................................................... 133
Marginesy wewnętrzne.................................................................................... 133
Marginesy zewnętrzne..................................................................................... 134
Opcje –expand i –anchor ................................................................................. 135
Kolejność kontrolek ........................................................................................ 135
Pozostałe polecenia pack ................................................................................. 136
Rozkład położeniowy ............................................................................................ 137
Położenie i rozmiar ......................................................................................... 137
Względne położenie i względny rozmiar ........................................................... 139
Pozostałe polecenia place................................................................................. 139
Rozkład siatkowy.................................................................................................. 139
Opcje polecenia grid........................................................................................ 140
Pozycjonowanie względne ............................................................................... 142
Konfiguracja kolumn i wierszy......................................................................... 143
Pozostałe polecenia grid .................................................................................. 144
Rozdział 9. Obsługa zdarzeń............................................................................. 147
Zdarzenia ............................................................................................................. 148
Typy zdarzeń.................................................................................................. 148
Szczegóły....................................................................................................... 149
Modyfikatory.................................................................................................. 149
Powiązania........................................................................................................... 150
Pola zdarzeń......................................................................................................... 151
Zdarzenia wirtualne............................................................................................... 152
Skupienie ............................................................................................................. 154
Polecenie grab...................................................................................................... 155
Polecenie tkwait.................................................................................................... 156
Rozdział 10. Proste kontrolki Tk ........................................................................ 157
Klasa Frame ......................................................................................................... 157
Opcje............................................................................................................. 157
Metody .......................................................................................................... 158
Właściwości ................................................................................................... 158
Klasa Toplevel...................................................................................................... 159
Opcje............................................................................................................. 159
Metody .......................................................................................................... 160
Właściwości ................................................................................................... 160
6
Tcl-Tk. Programowanie
Klasa Label .......................................................................................................... 160
Opcje............................................................................................................. 160
Metody .......................................................................................................... 161
Właściwości ................................................................................................... 161
Klasa Button ........................................................................................................ 161
Opcje............................................................................................................. 162
Metody .......................................................................................................... 163
Właściwości ................................................................................................... 163
Klasa Checkbutton................................................................................................ 164
Opcje............................................................................................................. 164
Metody .......................................................................................................... 166
Właściwości ................................................................................................... 166
Klasa Radiobutton................................................................................................. 167
Opcje............................................................................................................. 167
Metody .......................................................................................................... 169
Właściwości ................................................................................................... 169
Klasa Message...................................................................................................... 170
Opcje............................................................................................................. 170
Metody .......................................................................................................... 171
Właściwości ................................................................................................... 171
Klasa Scale........................................................................................................... 171
Opcje............................................................................................................. 171
Metody .......................................................................................................... 173
Właściwości ................................................................................................... 174
Rozdział 11. Menu aplikacji ............................................................................... 177
Klasa Menu.......................................................................................................... 177
Opcje............................................................................................................. 177
Metody .......................................................................................................... 178
Właściwości ................................................................................................... 181
Klasa Menubutton................................................................................................. 183
Opcje............................................................................................................. 183
Metody .......................................................................................................... 184
Właściwości ................................................................................................... 184
Polecenie tk_popup............................................................................................... 186
Polecenie tk_optionMenu ...................................................................................... 186
Rozdział 12. Złożone kontrolki Tk ...................................................................... 189
Klasa Entry .......................................................................................................... 189
Opcje............................................................................................................. 190
Metody .......................................................................................................... 191
Właściwości ................................................................................................... 193
Klasa Listbox ....................................................................................................... 196
Opcje............................................................................................................. 196
Metody .......................................................................................................... 197
Właściwości ................................................................................................... 200
Klasa Scrollbar ..................................................................................................... 202
Opcje............................................................................................................. 202
Metody .......................................................................................................... 203
Właściwości ................................................................................................... 203
Klasa Text............................................................................................................ 204
Opcje............................................................................................................. 204
Metody .......................................................................................................... 206
Spis treści
7
Właściwości ................................................................................................... 209
Markery ................................................................................................... 212
Znaczniki.................................................................................................. 213
Wbudowane okienka ................................................................................. 216
Wbudowane obrazki .................................................................................. 217
Klasa Canvas........................................................................................................ 218
Opcje............................................................................................................. 218
Metody .......................................................................................................... 219
Właściwości ................................................................................................... 225
Obiekty graficzne............................................................................................ 228
Łuk (arc) .................................................................................................. 229
Mapa bitowa (bitmap)................................................................................ 231
Obrazek (image)........................................................................................ 232
Linia (line)................................................................................................ 232
Elipsa (oval).............................................................................................. 234
Wielokąt (polygon).................................................................................... 235
Prostokąt (rectangle) .................................................................................. 236
Pole tekstowe (text) ................................................................................... 237
Kontrolka (window)................................................................................... 238
Rozdział 13. Pozostałe polecenia Tk .................................................................. 241
Zarządca okien platformy systemowej .................................................................... 241
Informacje o okienkach ......................................................................................... 244
Polecenia send i dde.............................................................................................. 247
Polecenia i procedury tk ........................................................................................ 250
Rozdział 14. Aplikacja ....................................................................................... 255
Trochę fizyki ........................................................................................................ 255
Program............................................................................................................... 255
Prezentacja programu............................................................................................ 259
Skorowidz...................................................................................... 261
Rozdział 6.
Wprowadzenie do Tk
Tk (Tool kit) jest pakietem narzędziowym rozszerzającym standard Tcl o dodatkowe po-
lecenia służące do tworzenia graficznego interfejsu użytkownika (GUI). Elementy GUI
to kontrolki Tk. W dalszej części książki kontrolki będą często nazywane okienkami.
Pakiet narzędziowy Tk, oprócz poleceń tworzących kontrolki, dostarcza również pole-
cenia służące do rozmieszczania kontrolek kontenerów (mogą nimi być inne kontrolki).
Właściwie są to zbiory poleceń nazywane najczęściej zarządcami geometrii lub za-
rządcami rozkładu.
Istnieją również, a może przede wszystkim i takie polecenia, dzięki którym aplikacja Tk
jest w stanie odpowiadać na różne zdarzenia generowane przez jej otoczenie. Dzięki
temu kliknięcie przyciskiem myszki, gdy kursor znajduje się nad obszarem ekranu, zaj-
mowanym przez określoną kontrolkę, może spowodować oczekiwaną (zaprogramowa-
ną) przez użytkownika reakcję aplikacji.
Inną zaletą pakietu Tk jest wysoki stopień niezależności kodu aplikacji od wyboru plat-
formy systemowej. Czy będzie to popularny system Windows, czy nieco bardziej wyma-
gający X Window System dla platformy Linux, kontrolki Tk będą funkcjonowały niemal
tak samo. Występujące drobne różnice nie powinny mieć większego wpływu na jakość
tworzonego GUI.
Bieżący rozdział wprowadza niezbędne pojęcia związane z programowaniem przy uży-
ciu pakietu narzędziowego Tk, pokazując przy tym współdziałanie oraz zależności po-
między poszczególnymi elementami graficznego interfejsu użytkownika.
Aplikacja Tk
Aplikacja Tk to wykonywany przez powłokę
wish skrypt Tcl wzbogacony poleceniami
pakietu narzędziowego Tk. Na skrypt Tcl-Tk składają się dwie zasadnicze części:
część inicjująca graficzny interfejs użytkownika — GUI;
procedury obsługi zdarzeń.
104
Tcl-Tk. Programowanie
Po wykonaniu poleceń inicjujących GUI, aplikacja Tk oczekuje na zdarzenia genero-
wane przez jej otoczenie. Na zajście zdarzenia aplikacja może odpowiedzieć wykona-
niem odpowiedniej procedury obsługi.
Uruchomienie powłoki
wish spowoduje pojawienie się głównego okna aplikacji. W sys-
temie Windows dodatkowo pojawi się konsola (rysunek 1.3), okienko umożliwiające po-
rozumiewanie się z programem powłoki. Główne okno aplikacji to pewien wyróżnio-
ny obszar ekranu, wokół którego zarządca okien utworzy „trójwymiarowe” krawędzie
oraz doda pasek tytułowy wraz z kilkoma przyciskami, umożliwiającymi zmianę rozmia-
rów czy też zamknięcie okna. To ostanie działanie jest równoznaczne z zakończeniem
działania aplikacji. Wygląd głównego okna aplikacji jest uzależniony od rodzaju plat-
formy systemowej, na której uruchomiono powłokę
wish.
Po uruchomieniu powłoki poleceniem
(w systemie Linux) lub
(w sys-
temie Windows) można wydać kilka poleceń, tworząc prosty GUI (rysunek 6.1).
Rysunek 6.1.
Konsola i przycisk
w głównym
oknie aplikacji
Powyższy przykład pokazuje hierarchiczną strukturę kontrolek aplikacji Tk. W głów-
nym oknie aplikacji pojawiło się okienko wewnętrzne (przycisk), którego kliknięcie
spowoduje zakończenie działania programu. Proszę zwrócić uwagę na nazwę przycisku:
. Podstawową cechą okienek wewnętrznych jest to, że nie mogą być wyświetlane poza
obszarem okienka, w którym się pojawiły. Można to łatwo sprawdzić, zmieniając myszką
rozmiar głównego okna aplikacji.
Kolejnym rodzajem okienek Tk są tak zwane okienka wysokiego poziomu. Jedno z nich,
utworzone poleceniem
zostało pokazane na rysunku 6.2. Okienka wysokiego poziomu tym różnią się od okienek
wewnętrznych, że wyświetlane są niezależnie od głównego okna aplikacji. Podobnie też
są traktowane przez zarządcę okien platformy systemowej. Zniszczenie głównego okna
aplikacji spowoduje zniszczenie okienek wysokiego poziomu, ale nie odwrotnie.
Aplikację Tk można uruchomić jednym z poniższych poleceń. Dla systemu Windows
będzie to polecenie:
!"#
Dla systemu Linux polecenie to będzie miało następującą formę:
!
Rozdział 6.
♦ Wprowadzenie do Tk
105
Rysunek 6.2.
Główne okno
aplikacji wraz
z okienkiem
wysokiego poziomu
Argument
jest nazwą skryptu Tcl-Tk. Spośród kilku dostępnych opcji
wspomnę o jednej:
Opcja ta pozwala określić początkowe położenie i rozmiar głównego okna
aplikacji. Argument
powinien mieć następujący format:
±±
Wszystkie wielkości podawane są w jednostkach ekranu (piksele, punkty,
milimetry, centymetry, cale). Znak
(
) oznacza odległość lewej (prawej)
krawędzi okienka od lewej (prawej) krawędzi ekranu. Podobnie
(
)
oznacza odległość górnej (dolnej) krawędzi okienka od górnej (dolnej)
krawędzi ekranu.
Argumenty
stanowią listę wartości przekazywanych do aplikacji. Powło-
ka
wish, rozpoczynając wykonywanie skryptu, tworzy pięć zmiennych:
Jest to liczba całkowita określająca ilość argumentów przekazywanych
do skryptu. W przypadku ich braku wartością
jest liczba 0.
Jest to łańcuch znaków zawierający, oddzielone spacjami, argumenty skryptu.
Jeżeli ich nie podano, łańcuch
jest pusty.
Jest to łańcuch zawierający nazwę uruchomionego skryptu. W przeciwnym
razie łańcuch
jest pusty.
Ten zapis oznacza, że zmiennej przypisywana jest wartość opcji
.
Ta zmienna przyjmuje wartość 1, jeżeli interpreter został uruchomiony
w trybie interaktywnym, bez specyfikacji nazwy skryptu. W przeciwnym
razie zmienna przyjmuje wartość 0.
106
Tcl-Tk. Programowanie
Kontrolki
Kontrolki Tk to okienka posiadające charakterystyczne właściwości, w tym charakte-
rystyczne cechy graficzne. Kontrolki podzielone są na klasy. Nazwa klasy rozpoczy-
na się od dużej litery, np.
(przycisk) i jest zwracana przez polecenie
gdzie
jest nazwą kontrolki. Na przykład po tworzeniu pola wejściowego
poleceniem
kolejne polecenie zwróci nazwę klasy:
$
Kontrolki należące do tej samej klasy charakteryzują się tym samym zestawem opcji
konfiguracyjnych, dzięki którym możliwe jest nadanie im indywidualnego wyglądu i spo-
sobu działania. Na przykład każda kontrolka wspomnianej już klasy
może wy-
świetlać jeden z elementów: tekst, bitmapę lub obrazek (rysunek 6.3) i może w różny spo-
sób reagować, powiedzmy na kliknięcie przyciskiem myszki.
Rysunek 6.3.
Indywidualne cechy
wyglądu kontrolek
klasy Button
Lista standardowych klas kontrolek dostarczanych w pakiecie narzędziowym Tk jest
wystarczająco obszerna, by móc tworzyć nawet skomplikowane GUI. W dalszych roz-
działach książki opisane zostaną następujące klasy kontrolek:
(przycisk)
(ramka)
(płótno)
(pole wyboru)
(pole wejściowe)
(element graficzny)
(etykieta)
(lista wyboru)
(pasek menu)
(przycisk menu)
Rozdział 6.
♦ Wprowadzenie do Tk
107
(wiadomość)
(pole opcji)
(skala)
(pasek przewijania)
(pole tekstowe)
(okno wysokiego poziomu)
Jak już wspomniano, okienka aplikacji Tk zorganizowane są w sposób hierarchiczny.
Na szczycie znajduje się główne okno aplikacji. Jest ono rodzicem (kontenerem) dla
wszystkich pozostałych kontrolek (nawet okienek wysokiego poziomu), które z kolei
również mogą być rodzicami innych okienek. Ta struktura odbija się w sposobie identy-
fikacji kontrolek. Można mówić o ścieżkach nazw lub drzewiastej strukturze kontro-
lek aplikacji Tk. Zapis
oznacza, iż okienko
jest dzieckiem okienka
, którego
rodzicem jest okienko
, będące bezpośrednim potomkiem głównego okna aplikacji
.
Ścieżki nazw, chociaż mogą nasuwać porównania z techniką programowania obiekto-
wego (C++, Java), nie mają z nią nic wspólnego. Określają kontener dla kontrolek usy-
tuowanych w hierarchii o jeden szczebel niżej.
Tworzenie i usuwanie kontrolek
Polecenie o nazwie takiej samej jak nazwa klasy, ale rozpoczynające się od małej lite-
ry jest nazwą polecenia tworzącego kontrolkę. Ogólna postać takiego polecenia jest
następująca:
Argument
odpowiada klasie kontrolki Tk. Argument
jest ścieżką na-
zwy kontrolki, a argumenty
i
są odpowiednio przełącznikiem opcji konfi-
guracyjnej i jej wartością. Przełącznik opcji (dalej opcja) jest konstrukcją składającą się
z myślnika i nazwy opcji (np.:
). Polecenie zwraca nazwę kontrolki.
Interesujące jest to, że ścieżka nazwy utworzonej kontrolki sama staje się nazwą pole-
cenia. Wynika stąd, że kontrolki posiadają własne zestawy poleceń, których postać
jest następująca:
Argument
, nazywany modyfikatorem, jest obowiązkowy, ponieważ definiuje ope-
rację wykonywaną przez lub na kontrolce
. Analogicznie do konstrukcji
obiektowych można powiedzieć, że modyfikator określa metodę obiektu reprezentują-
cego kontrolkę. Polecenie
%
zwraca aktualną wartość opcji
kontrolki
, a polecenie
108
Tcl-Tk. Programowanie
&%
umożliwia zmianę wartości wybranej opcji, czy też zwraca aktualną wartość jednej
lub wszystkich opcji.
Wypróbujmy:
'(
%'
(
Usunięcie jednej lub kilku kontrolek jest równie proste, jak ich tworzenie. Wystarczy
wykonać polecenie
z argumentem będącym listą ścieżek nazw kontrolek prze-
znaczonych do usunięcia:
Możemy teraz usunąć przycisk z ostatniego przykładu:
%'
))
Rzeczywiście, przycisk został zniszczony, o czym świadczy reakcja powłoki
wish na
próbę pobrania wartości jednej z opcji konfiguracyjnych (
).
Zarządcy rozkładów
O ostatecznych rozmiarach i położeniach kontrolek w obszarze GUI decydują zarząd-
cy rozkładu (rysunek 6.4). Każdy z nich w charakterystyczny dla siebie sposób roz-
mieszcza grupę kontrolek w ich kontenerze. Zarządca
jest najprostszy i wyma-
ga jawnego określenia takich parametrów, jak: szerokość, wysokość, a także współrzędne
lewego górnego rogu kontrolki. Kolejny zarządca,
, stara się upakować kontrolki,
minimalizując ich rozmiary. Jego działanie jest konsekwencją narzucenia pewnych
warunków, na przykład takiego, który nakazuje umieszczenie kontrolki przy lewej
krawędzi dostępnego obszaru. Ostatnim standardowym zarządcą geometrii jest
,
grupujący kontrolki w komórkach siatki.
Rysunek 6.4.
Efekt rozmieszczenia
trzech przycisków
przez zarządców:
place, pack i grid
Rozdział 6.
♦ Wprowadzenie do Tk
109
Wymiana informacji
Aplikacja Tk wymienia dane z użytkownikiem, innymi aplikacjami, a także z zarządcą
okien platformy systemowej. Prawie zawsze zamierzona praca aplikacji wymaga współ-
działania pomiędzy poszczególnymi jej elementami — kontrolkami.
Użytkownik generuje zdarzenia, korzystając z urządzeń peryferyjnych: myszki lub
klawiatury. Źródłem zdarzenia staje się ta z kontrolek aplikacji, której bezpośrednio
dotyczy operacja wykonana myszką lub klawiaturą (typ zdarzenia). Z każdym typem
zdarzenia oraz jego źródłem można poleceniem
powiązać procedurę obsługi wy-
konywaną w odpowiedzi na zajście zdarzenia. Na tym właśnie polega tak zwane zda-
rzeniowe oprogramowanie GUI. Użytkownik generuje zdarzenia, po czym aplikacja
odpowiada wykonaniem dedykowanej procedury obsługi.
O ile do zajścia zdarzenia związanego z myszką wystarcza wprowadzenie jej kursora
nad obszar kontrolki (zdarzenie typu
), o tyle reakcja na zdarzenia klawiatury
uzależniona jest od tego, która z kontrolek aplikacji posiada skupienie (focus). W da-
nej chwili, w odpowiedzi na zdarzenia klawiatury, mogą być wykonywane skrypty
obsługi powiązane tylko z jedną kontrolką, tą właśnie która aktualnie posiada skupie-
nie. Sposób zmiany skupienia uzależniony jest od klasy kontrolki. Dla okienek z klas
lub
wystarczy kliknięcie nad ich obszarem lewym przyciskiem myszki, a dla
kontrolek z klas
czy
konieczne jest użycie kombinacji klawiszy
Tab lub Shift+Tab. Inne z kontrolek, na przykład należące do klasy
, mogą
przyjmować skupienie tylko w wyniku wykonania polecenia
.
Czasem zachodzi potrzeba ograniczenia reakcji na zachodzące zdarzenia tylko do jed-
nego drzewa kontrolek. Mechanizm ten, realizowany przez polecenie
, jest najczę-
ściej wykorzystywany do budowy okienek dialogowych.
Inny sposób interakcji użytkownika z aplikacją polega na wykorzystaniu opcji
kontrolek należących do takich klas, jak:
,
i
.
Opcja
umożliwia, bez konieczności korzystania z polecenia
, zdefinio-
wanie skryptu wykonywanego po kliknięciu lewego przycisku myszki nad obszarem
wybranego okienka.
Wymieniać informacje mogą również dwie działające niezależne od siebie aplikacje.
Polecenie
wysyła skrypt Tcl do innej aplikacji, gdzie jest wykonywany. Następnie
wynik zostaje zwrócony do aplikacji wysyłającej. W ten sposób pewne zadania infor-
matyczne można przydzielić do wykonania kilku programom.
Specyficznym oddziaływaniem pomiędzy aplikacją Tk, a jej otoczeniem jest wykorzy-
stanie zarządcy okien platformy systemowej do zmiany geometrii głównego okienka
aplikacji oraz okienek wysokiego poziomu. Korzystając ze zbioru poleceń
, można
dodatkowo sprecyzować szereg innych parametrów kontrolek wysokiego poziomu.
Jak wspomniano wyżej, współpraca pomiędzy samymi okienkami również nie należy
do wyjątków. Kontrolki klas
,
,
,
można łączyć z paskami
przewijania (
). W tym przypadku położenie suwaka na pasku przewijania jest
odwzorowywane na widzialny obszar powiązanego z nim okienka.