Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania
Transcript of Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Tcl/Tk
Ireneusz So lczyk
26 kwietnia 2006
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Plan prezentacji1 Wst
↪ep
Historia i tworcaCo to jest Tcl/Tk?
2 Podstawy j↪ezyka
Przyk lady sk ladniStruktury danych w Tcl/Tk
3 Tcl zaawansowanyPrzestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
4 GUI-TkTk - pochodzenie i przeznaczenieKlasy formatekPrzyk lad aplikacji Tk
5 ZastosowaniaPrzyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Historia i tworcaCo to jest Tcl/Tk?
Wst↪ep
Historia i tworca
Autor
John K. Ousterhout - by ly profesor UniwersytetuKalifornijskiego w Berkeley, pozniejszy specjalista w firmie SunMicrosystems Labolatories.
Historia
1989 - Pierwsza zewn↪etrzna wersja Tcl i pocz
↪atek
implementacji Tk
1991 - Pierwsza wersja Tk
1997 - Powstanie Tcl Konsorcjum
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Historia i tworcaCo to jest Tcl/Tk?
Wst↪ep
Co to jest Tcl/Tk?
John K. Ousterhout :
”Prosty j↪ezyk do pisania skryptow
przeznaczonych do kontrolowania i rozszerzania aplikacji”
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Historia i tworcaCo to jest Tcl/Tk?
Wst↪ep
Dlaczego Tcl/Tk?
Cechy j↪ezyka :
jest to j↪ezyk skryptowy, napisany w C/C++
jest mozliwe zagniezdzanie w srodowisku innego j↪ezyka
to j↪ezyk wysokiego poziomu
posiada interfejs graficzny - Tk
mozliwa jest praca w trybie interaktywnym
wieloplatformowosc : Windows, Unix, Linux, QNX, BSD
duza liczba rozszerzen, pakietow
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady sk ladniStruktury danych w Tcl/Tk
Podstawy j↪ezyka
Przyk lady sk ladni - zmienne
Tworzenie zmiennych
set zmienna1 wartosc
Odczyt zmiennych
set zmienna2 $wartosc zmiennej1
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady sk ladniStruktury danych w Tcl/Tk
Podstawy j↪ezyka
Przyk lady sk ladni - operacje I/O
Przyk lad operacji I/O
#!/usr/bin/tclsh
# Wypisanie komunikatu na ekran
puts "Podaj imi↪e :"
# Wczytanie z klawiatury
gets stdin imie
# Wypisanie wartosci zmiennej na ekran
puts "Witaj $imie"
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady sk ladniStruktury danych w Tcl/Tk
Podstawy j↪ezyka
Przyk lady sk ladni - p↪etle
P↪etla for
for {set i 1} {$i < 5} {incr i} {puts "$i"
}
P↪etla foreach
foreach wydzial {wil wis wiek witch wa wftimk wm} {puts $wydzial
}
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady sk ladniStruktury danych w Tcl/Tk
Podstawy j↪ezyka
Przyk lady sk ladni - procedury
Procedura
proc witaj swiecie {} {puts "Witaj swiecie"
}
Wywo lanie procedury
witaj swiecie
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady sk ladniStruktury danych w Tcl/Tk
Struktury danych w Tcl/Tk
Struktury danych w Tcl/Tk
zmienne
lancuchy znakowe
tablice
listy
zarz↪
adzanie plikami
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
Tcl zaawansowanyPrzestrzenie nazw
Tworzenie przestrzeni nazw
namespace eval przesN {variable a 20
}namespace eval przesN {
proc wypisz {} {puts $przesN::a
}}
Dost↪ep do przestrzeni nazw
przesN::wypisz
20
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
Tcl zaawansowanyPakiety
Zarz↪
adzanie pakietami
Mechanizm pakietu wprowadzono w wersji 7.5 j↪ezyka TCL.
Polecenie package opcja zawiaduje baz↪
a danych do gromadzeniapakietow i udost
↪epniania ich dzia lajacemu aktualnie
interpreterowi. Baza pakietowa moze zawierac dowolne wersjedanego rodzaju pakietu, zastosowane srodki zabezpieczaj
↪a
jednak przed kolizj↪
a.
Wazniejsze pakiety
Blt - zawiera zbior dodatkowych formatek
Expect - wspomaga komunikacj↪e w programach
intraktywnych
incr Tk - umozliwia programowanie obiektowe w TclIreneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
Tcl i C
Rozszerzenia w C
J↪ezyk C jest bardzo wydajny obliczeniowo, zapewnia dost
↪ep do
mechanizmow niskiego poziomu itd. Cechy te mog↪
a decydowacprzy wyborze j
↪ezyka implementacji nowych polecen,
wykraczaj↪
acych poza zbior podstawowych polecen Tcl. Takienowe polecenia Tcl mog
↪a byc na przyk lad potrzebne przy
budowie systemow pracuj↪acych w czasie rzeczywistym, mozna
je tworzyc w C/C++.
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
Tcl bezpieczny
Tcl bezpieczny
to interpretery dzia laj↪
ace w uk ladzie nadrz↪edny-podleg ly, ich
dzia lanie polega na ukrywaniu pewnych polecen Tcl winterpreterze podleg lym.
Interpreter bezpieczny
to wirtualna maszyna o ograniczonych mozliwosciachfunkcjonalnych, przeznaczona do wykonywania skryptow.
Interpreter nadrz↪edny
ma pe ln↪a kontrol
↪e nad powo lanymi przez siebie podleg lymi
interpreterami, moze ograniczyc ich dost↪ep, a takze
uniemozliwic wykonywanie niektorych operacji.
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przestrzenie nazwPakietyTcl bezpiecznyTcl w aplikacjach sieciowych
Tcl w aplikacjach sieciowych
Kana ly sieciowe
mozna je traktowac jako pewna odmian↪e kana low I/O. W
uk ladzie klient-serwer kana ly sieciowe tworzymy zarowno odstrony klienta, jak i od strony serwera. Do budowy po l
↪aczenia
sieciowego wed lug protoko lu TCP s luzy polecenie socket -pozwala ono tworzyc kana ly dla obu stron uk ladu.
Obs luga kana low sieciowych
read - odczyt z kana lu o podanym identyfikatorze
puts - pisanie do kana lu
flush - przes lanie danych z buforu do pliku przeznaczenia
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Tk - pochodzenie i przeznaczenieKlasy formatekPrzyk lad aplikacji Tk
GUI - Tk
Tk
Jest to zespo l narz↪edzi do tworzenia GUI.
Pierwowzorem dla Tk jest system X Window, st↪
ad tez pochodzibudowa mechanizmow i cechy uzytkowe.W wyniku sformu lowania systemu X powsta l produkt podnazw
↪a Motif, ktory nast
↪epnie zosta l wprowadzony do Tcl jako
jego rozszerzenie pod nazw↪
a Tk.
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Tk - pochodzenie i przeznaczenieKlasy formatekPrzyk lad aplikacji Tk
GUI - Tk
Formatki proste
button
checkbutton
radiobutton
entry
label
frame
scrollbar
Formatki z lozone
menubutton
menu
listbox
scale
toplevel
text
canvas
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Tk - pochodzenie i przeznaczenieKlasy formatekPrzyk lad aplikacji Tk
GUI - TkPrzyklad aplikacji Tk
Przyk lad aplikacji Tk
#!/usr/bin/wish
button .b -text "Witaj swiecie" -command {exit}pack .b
Aplikacja
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Zastosowania
Przyk lady zastosowan
Scalanie aplikacji w jeden spojny system
Modu ly w Kadu
AOLserver - web server stworzony w oparciu o Tcl
Jacl i TclBlend - pakiety umozliwiaj↪
ace integracj↪e Tcl i Javy
Skrypty Tcl na stronach www
http://www.pasteur.fr/ letondal/tcl.html
Wsparcie dla innych j↪ezykow :
Perl/Tk -aspn.activestate.com/ASPN/docs/ActivePerl/5.8/site/lib/Tk.htmlRuby/Tk - www.rubycentral.com/book/ext tk.htmlPython/Tk = Tkinter - wiki.python.org/moin/TkInterC++/Tk - cpptk.sourceforge.net
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Moje aplikacje - RungeKutta2004
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Moje aplikacje - RungeKutta2004
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Moje aplikacje - RungeKutta2004
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Moje aplikacje - Lagrange2004
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Moje aplikacje - Lagrange2004
Ireneusz So lczyk Tcl/Tk
Wst↪ep
Podstawy j↪ezyka
Tcl zaawansowanyGUI-Tk
Zastosowania
Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc
Literatura i pomoc
Zdzis law Wrzeszcz - Tcl/Tk J↪ezyk programowania aplikacji
z lozonych
Tcl8.5-Tk8.5 Manual
Brent Welch - Practical Programming in Tcl and Tk
TCL/TK ELECTRONIC REFERENCE
Strony o Tcl :
http://www.tcl.tkhttp://www.cis.rl.ac.uk/Publications/Cookbookhttp://www.activestate.com/Products/ActiveTclhttp://wiki.tcl.tk
Ireneusz So lczyk Tcl/Tk