TCL-TK. Programowanie

Podobne dokumenty
Smarty PHP. Leksykon kieszonkowy

1. Przypisy, indeks i spisy.

Dodanie nowej formy do projektu polega na:

Temat: Organizacja skoroszytów i arkuszy

Edytor tekstu MS Office Word

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Architektura interfejsu użytkownika

Dodawanie grafiki i obiektów

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel.

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

System Informatyczny CELAB. Terminy, alarmy

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Formy dialogowe w środowisku Gnome

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

AutoCAD Pierwsze kroki

Tworzenie prezentacji w MS PowerPoint

C++. Æwiczenia zaawansowane

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Wykład 2 Składnia języka C# (cz. 1)

Ćw. I Projektowanie opakowań transportowych cz. 1 Ćwiczenia z Corel DRAW

Programowanie w języku Python. Grażyna Koba

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

Pokaz slajdów na stronie internetowej

1. Opis okna podstawowego programu TPrezenter.

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Rozdział II. Praca z systemem operacyjnym

Pasek menu. Ustawienia drukowania

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Arkusz kalkulacyjny. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

ep Podstawy j Wst ezyka Tcl zaawansowany GUI-Tk Zastosowania Tcl/Tk Ireneusz So lczyk 26 kwietnia 2006

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Wyniki operacji w programie

Czcionki bezszeryfowe

1 Podstawy c++ w pigułce.

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

UONET+ moduł Dziennik

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Galileo v10 pierwszy program

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Instrukcja EQU Kantech

Komputery I (2) Panel sterowania:

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Tworzenie bazy danych na przykładzie Access

Podstawy technologii WWW

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

Konsola operatora TKombajn

Arkusz kalkulacyjny EXCEL

Umieszczanie kodu. kod skryptu

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Rozdział 5: Style tekstu

Formularze w programie Word

Lekcja 1: Origin GUI GUI to Graficzny interfejs użytkownika (ang. GraphicalUserInterface) często nazywany też środowiskiem graficznym

BAZY DANYCH Formularze i raporty

Matematyka z komputerem dla gimnazjum

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Programowanie Obiektowe GUI

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

AutoCAD Pierwsze kroki

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012. Przygotowanie do druku

Zadanie 3. Praca z tabelami

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Programowanie obiektowe

Podstawy technologii cyfrowej i komputerów

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie II. Tworzenie nowej karty pracy a. Obiekty b. Nauka pisania...

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

BAZY DANYCH Panel sterujący

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

ROZSZERZANIE MOŻLIWOŚCI...

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

5.2. Pierwsze kroki z bazami danych

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

W oknie tym wybieramy pożądany podział sekcji, strony, kolumny. Naciśnięcie powoduje pojawienie się następującego okna:

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Celem tego projektu jest stworzenie

Dodawanie operacji dodatkowych w WAPRO Mag.

AutoCAD 2007 PL. Pierwsze kroki

Word 2007 PL. Kurs IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE

Wypełnianie kolorem lub deseniem

mfaktura Instrukcja instalacji programu Ogólne informacje o programie biuro@matsol.pl

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Kier. MTR Programowanie w MATLABie Laboratorium

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Języki skryptowe w programie Plans

CorelDRAW. 1. Rysunek rastrowy a wektorowy. 2. Opis okna programu

Transkrypt:

IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE 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ñ wej cia-wyj cia, 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. Je li 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...z... 9 Rozdział 1. Instalacja środowiska...z... 11 Środowisko...1...1...11 Powłoka tclsh...1...1...13 Rozdział 2. Podstawy Tcl...z... 15 Polecenia i zmienne...1...15 Polecenia...1...1...15 Zmienne...1...1...16 Tworzenie zmiennych...1...16 Usuwanie zmiennych...1...17 Pobieranie wartości zmiennej...1...17 Przytaczanie, lewy ukośnik, komentarze...1...18 Przytaczanie łańcuchów...1...18 Przytaczanie poleceń...1...18 Lewy ukośnik...1...19 Polecenie subst...1...19 Komentarze...1...120 Obliczenia...1...1...20 Wyrażenia Tcl...1...20 Funkcje matematyczne...1...21 Operatory...1...1...22 Przykłady...1...1...24 Dzielenie...1...24 Mnożenie...1...24 Dodawanie i odejmowanie...1...24 Porównywanie liczb i łańcuchów...1...25 Operator warunkowy...1...25 Polecenie eval...1...25 Instrukcje sterujące...1...26 Instrukcja warunkowa if...1...26 Instrukcja warunkowa switch...1...27 Instrukcja sterująca while...1...28 Instrukcja sterująca for...1...28 Instrukcja sterująca foreach...1...29 Procedury...1...1...29 Definiowanie i wywoływanie procedur...1...29 Stos wywołań...1...31

4 Tcl-Tk. Programowanie Programowanie zdarzeniowe...1...33 Polecenie vwait...1...34 Polecenie after...1...34 Niektóre zmienne specjalne i polecenia systemowe Tcl...35 Zmienne specjalne...1...35 Polecenia systemowe...1...37 Rozdział 3. Struktury danych...z... 43 Łańcuchy i wyrażenia regularne...1...43 Polecenia string...1...43 Polecenia: append, format, scan...1...49 Wyrażenia regularne...1...52 Listy...1...1...56 Tworzenie list...1...56 Operacje dotyczące list...1...57 Tablice...1...1...60 Tworzenie tablic...1...60 Polecenia array...1...61 Przestrzenie nazw...1...64 Procedury i zmienne...1...65 Importowanie poleceń...1...67 Polecenia odłożone...1...67 Inne polecenia namespace...1...68 Rozdział 4. Wymiana danych...z... 71 Pliki...1...1...71 Polecenia file...1...71 Polecenie glob...1...77 Dostęp do plików...1...78 Polecenia open i close...1...79 Konfiguracja kanału IO...1...80 Polecenia IO oraz polecenia: tell, seek i eof...1...82 Wykorzystanie poleceń IO...1...83 Zdarzenia IO i polecenie fileevent...1...85 Procesy, przekierowania i potoki...1...87 Uruchamianie podprocesów, polecenie exec...1...87 Przechwytywanie błędów...1...90 Wymiana danych między procesami...1...91 Gniazda...1...1...92 Polecenie socket...1...93 Komunikacja z serwerem www...1...95 Rozdział 5. Pakiety i biblioteki skryptów...z... 97 Ścieżki dostępu...1...1.97 Biblioteki...1...1...97 Pakiety...1...1...99 Dostęp do baz danych...1...101 Rozdział 6. Wprowadzenie do Tk...z... 103 Aplikacja Tk...1...1..103 Kontrolki...1...1...106 Tworzenie i usuwanie kontrolek...1...107 Zarządcy rozkładów...1...108 Wymiana informacji...1...109

Spis treści 5 Rozdział 7. Konfiguracja kontrolek...z... 111 Opcje i plik zasobów...1...111 Rozmiary...1...1...114 Krawędzie...1...1...115 Kolory...1...1...115 Kursor myszki...1...1117 Kursor wprowadzania tekstu...1...118 Czcionki...1...1...119 Tekst i obrazki...1...1122 Tekst...1...1...122 Obrazki...1...1...123 Obrazek typu bitmap...1...124 Obrazek typu photo...1...126 Polecenia związane z obrazkami...1...127 Wykorzystanie...1...129 Rozdział 8. Rozkłady...z... 131 Zarządca geometrii pack...1...131 Wybór strony upakowania...1...132 Wypełnianie obszarów...1...133 Marginesy wewnętrzne...1...133 Marginesy zewnętrzne...1...134 Opcje expand i anchor...1...135 Kolejność kontrolek...1...135 Pozostałe polecenia pack...1...136 Rozkład położeniowy...1...137 Położenie i rozmiar...1...137 Względne położenie i względny rozmiar...1...139 Pozostałe polecenia place...1...139 Rozkład siatkowy...1...139 Opcje polecenia grid...1...140 Pozycjonowanie względne...1...142 Konfiguracja kolumn i wierszy...1...143 Pozostałe polecenia grid...1...144 Rozdział 9. Obsługa zdarzeń...z... 147 Zdarzenia...1...1...148 Typy zdarzeń...1...148 Szczegóły...1...1.149 Modyfikatory...1...149 Powiązania...1...1...150 Pola zdarzeń...1...1...151 Zdarzenia wirtualne...1...152 Skupienie...1...1...154 Polecenie grab...1...1155 Polecenie tkwait...1...156 Rozdział 10. Proste kontrolki Tk...z... 157 Klasa Frame...1...1...157 Opcje...1...1...157 Metody...1...1...158 Właściwości...1...158 Klasa Toplevel...1...1159 Opcje...1...1...159 Metody...1...1...160 Właściwości...1...160

6 Tcl-Tk. Programowanie Klasa Label...1...1...160 Opcje...1...1...160 Metody...1...1...161 Właściwości...1...161 Klasa Button...1...1..161 Opcje...1...1...162 Metody...1...1...163 Właściwości...1...163 Klasa Checkbutton...1...164 Opcje...1...1...164 Metody...1...1...166 Właściwości...1...166 Klasa Radiobutton...1...167 Opcje...1...1...167 Metody...1...1...169 Właściwości...1...169 Klasa Message...1...1170 Opcje...1...1...170 Metody...1...1...171 Właściwości...1...171 Klasa Scale...1...1...171 Opcje...1...1...171 Metody...1...1...173 Właściwości...1...174 Rozdział 11. Menu aplikacji...z... 177 Klasa Menu...1...1...177 Opcje...1...1...177 Metody...1...1...178 Właściwości...1...181 Klasa Menubutton...1...183 Opcje...1...1...183 Metody...1...1...184 Właściwości...1...184 Polecenie tk_popup...1...186 Polecenie tk_optionmenu...1...186 Rozdział 12. Złożone kontrolki Tk...z... 189 Klasa Entry...1...1...189 Opcje...1...1...190 Metody...1...1...191 Właściwości...1...193 Klasa Listbox...1...1.196 Opcje...1...1...196 Metody...1...1...197 Właściwości...1...200 Klasa Scrollbar...1...202 Opcje...1...1...202 Metody...1...1...203 Właściwości...1...203 Klasa Text...1...1...204 Opcje...1...1...204 Metody...1...1...206

Spis treści 7 Właściwości...1...209 Markery...1...212 Znaczniki...1...213 Wbudowane okienka...1...216 Wbudowane obrazki...1...217 Klasa Canvas...1...1..218 Opcje...1...1...218 Metody...1...1...219 Właściwości...1...225 Obiekty graficzne...1...228 Łuk (arc)...1...229 Mapa bitowa (bitmap)...1...231 Obrazek (image)...1...232 Linia (line)...1...232 Elipsa (oval)...1...234 Wielokąt (polygon)...1...235 Prostokąt (rectangle)...1...236 Pole tekstowe (text)...1...237 Kontrolka (window)...1...238 Rozdział 13. Pozostałe polecenia Tk...z... 241 Zarządca okien platformy systemowej...1...241 Informacje o okienkach...1...244 Polecenia send i dde...1...247 Polecenia i procedury tk...1...250 Rozdział 14. Aplikacja...z... 255 Trochę fizyki...1...1..255 Program...1...1...255 Prezentacja programu...1...259 Skorowidz...z... 261

Rozdział 6. Wprowadzenie do Tk Tk (Tool kit) jest pakietem narzędziowym rozszerzającym standard Tcl o dodatkowe polecenia 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ż polecenia 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 zarzą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, zajmowanym przez określoną kontrolkę, może spowodować oczekiwaną (zaprogramowaną) przez użytkownika reakcję aplikacji. Inną zaletą pakietu Tk jest wysoki stopień niezależności kodu aplikacji od wyboru platformy systemowej. Czy będzie to popularny system Windows, czy nieco bardziej wymagają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życiu pakietu narzędziowego Tk, pokazując przy tym współdziałanie oraz zależności pomię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 generowane przez jej otoczenie. Na zajście zdarzenia aplikacja może odpowiedzieć wykonaniem odpowiedniej procedury obsługi. Uruchomienie powłoki wish spowoduje pojawienie się głównego okna aplikacji. W systemie Windows dodatkowo pojawi się konsola (rysunek 1.3), okienko umożliwiające porozumiewanie się z programem powłoki. Główne okno aplikacji to pewien wyróżniony 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ę rozmiaró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 platformy systemowej, na której uruchomiono powłokę wish. Po uruchomieniu powłoki poleceniem (w systemie Linux) lub (w systemie 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łównym 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łoka 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 charakterystyczne cechy graficzne. Kontrolki podzielone są na klasy. Nazwa klasy rozpoczyna 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 sposobu 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 sposó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 rozdział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 identyfikacji kontrolek. Można mówić o ścieżkach nazw lub drzewiastej strukturze kontrolek 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 obiektowego (C++, Java), nie mają z nią nic wspólnego. Określają kontener dla kontrolek usytuowanych 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 litery jest nazwą polecenia tworzącego kontrolkę. Ogólna postać takiego polecenia jest następująca: Argument odpowiada klasie kontrolki Tk. Argument jest ścieżką nazwy kontrolki, a argumenty i są odpowiednio przełącznikiem opcji konfiguracyjnej 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ą polecenia. 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 operację 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 przeznaczonych 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ądcy rozkładu (rysunek 6.4). Każdy z nich w charakterystyczny dla siebie sposób rozmieszcza grupę kontrolek w ich kontenerze. Zarządca jest najprostszy i wymaga 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 wykonywaną w odpowiedzi na zajście zdarzenia. Na tym właśnie polega tak zwane zdarzeniowe 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 danej 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 skupienie. 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 jednego 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, zdefiniowanie 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 informatyczne można przydzielić do wykonania kilku programom. Specyficznym oddziaływaniem pomiędzy aplikacją Tk, a jej otoczeniem jest wykorzystanie 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.