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

Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 3: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 4: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 5: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 6: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 7: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 8: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 9: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 10: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 11: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 12: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 13: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 14: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 15: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 16: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 17: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 18: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 19: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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

Page 20: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

Wst↪ep

Podstawy j↪ezyka

Tcl zaawansowanyGUI-Tk

Zastosowania

Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc

Moje aplikacje - RungeKutta2004

Ireneusz So lczyk Tcl/Tk

Page 21: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

Wst↪ep

Podstawy j↪ezyka

Tcl zaawansowanyGUI-Tk

Zastosowania

Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc

Moje aplikacje - RungeKutta2004

Ireneusz So lczyk Tcl/Tk

Page 22: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

Wst↪ep

Podstawy j↪ezyka

Tcl zaawansowanyGUI-Tk

Zastosowania

Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc

Moje aplikacje - RungeKutta2004

Ireneusz So lczyk Tcl/Tk

Page 23: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

Wst↪ep

Podstawy j↪ezyka

Tcl zaawansowanyGUI-Tk

Zastosowania

Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc

Moje aplikacje - Lagrange2004

Ireneusz So lczyk Tcl/Tk

Page 24: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

Wst↪ep

Podstawy j↪ezyka

Tcl zaawansowanyGUI-Tk

Zastosowania

Przyk lady zastosowanMoje aplikacjeLiteratura i pomoc

Moje aplikacje - Lagrange2004

Ireneusz So lczyk Tcl/Tk

Page 25: Wstep Podstawy j,ezyk a Tcl zaawansowany GUI-Tk Zastosowania

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