TCL/TK Κιόχος Απόστολος TCL/TK Η TCL/TK είναι μια γλώσσα προγραμματισμού Που βοηθάει στην επέκταση των εφαρμογών και στην κατασκευή γραφικού περιβάλλοντος. Αποτελείται από δύο μέρη.

Download Report

Transcript TCL/TK Κιόχος Απόστολος TCL/TK Η TCL/TK είναι μια γλώσσα προγραμματισμού Που βοηθάει στην επέκταση των εφαρμογών και στην κατασκευή γραφικού περιβάλλοντος. Αποτελείται από δύο μέρη.

TCL/TK

Κιόχος Απόστολος

TCL/TK

Η TCL/TK είναι μια γλώσσα προγραμματισμού Που βοηθάει στην επέκταση των εφαρμογών και στην κατασκευή γραφικού περιβάλλοντος.

Αποτελείται από δύο μέρη το TCL και το TK

TCL

 Είναι μια απλή γλώσσα για κατασκευή και επέκταση εφαρμογών  Περιέχει τις βασικότερες προγραμματιστικές λειτουργίες όπως μεταβλητές , πίνακες , δομές ελέγχου , μαθηματικές εκφράσεις κ.α.

TK

To TK είναι ένα «κουτί» εργαλείων που χρησιμοποιείται μαζί με την TCL για την κατασκευή user interfaces.

To TK είναι η πιο γνωστή και χρήσιμη επέκταση του TCL

Τα πλεονεκτήματα της TCL/TK

   Με την χρίση της TCL/TK μπορούμε να κατασκευάσουμε πολύ πιο εύκολα , γρήγορα και με λιγότερες γραμμές κώδικα εφαρμογές γραφικού περιβάλλοντος σε σχέση με την C.

Ο Προγραμματιστής μπορεί να επεκτείνει εύκολα τις εφαρμογές του χρησιμοποιώντας ελάχιστες εντολές.

Το TCL μπορεί πολύ εύκολα να ενσωματωθεί σε υπάρχουσες εφαρμογές.

Τα πλεονεκτήματα της TCL/TK

 Η TCL/TK χρησιμοποιεί διερμηνέα και όχι μεταγλωττιστή, έτσι οι εφαρμογές μπορούν να τρέξουν σε διάφορα λειτουργικά συστήματα και αρχιτεκτονικές.

 Η TCL μπορεί εύκολα να ενσωματώσει και άλλες βιβλιοθήκες όπως το TK.

Τι μας παρέχει η TCL

 H TCL παρέχει τις εντολές και δομές ώστε να μπορέσουμε να γράψουμε διάφορα είδη εφαρμογών.

 Μας παρέχει : Μεταβλητές , Τελεστές , Πίνακες , Λίστες , Δομές ελέγχου , Αρχεία , Συναρτήσεις , Εκφράσεις , Διαδικασίες και χειρισμό λαθών.

Μεταβλητές στην TCL

 Οι μεταβλητές δημιουργούνται με την εντολή SET π.χ set A 44 , set B [ expr $A*4]  Στην τιμή των μεταβλητών αναφερόμαστε με $varname

Έλεγχος Ροής στην TCL

 Στην TCL υπάρχουν οι εντολές IF , SWITCH , FOR , FOREACH και WHILE που λειτουργούν παρόμοια με τις αντίστοιχες της C  Υπάρχουν επίσης και δύο εντολές ελέγχουν βρόγχων οι BREAK και η COTINUE

Συναρτήσεις στην TCL

 Οι συναρτήσεις δημιουργούνται με την εντολή proc π.χ. proc mul (a b) {expr $a*$b}  Όλες οι μεταβλητές εντός της συνάρτησης είναι τοπικές.

 Με την χρίσης της εντολής global ορίζουμε μεταβλητές με εμβέλεια όλες τις συναρτήσεις π.χ. global x

Μαθηματικές συναρτήσεις

 Υπάρχει πλήθος μαθηματικών συναρτήσεων οι σημαντικότερες είναι: Abs(x) cos(x) Exp(x) Log(x) Pow(x,y) Sin(x) tan(x) sqrt(x)

 \n  \t  \space  \a  \b  \v

Ακολουθίες backslash

νέα γραμμή tab κενός χαρακτήρας ηχητικό μήνυμα backspace κάθετο tab

Σχόλια στην TCL

 Στον κώδικα μπορούμε να προσθέσουμε και σχόλια που μας βοηθούν στην μελλοντική συντήρηση του κώδικα.

 Αν ο πρώτος μη κενός χαρακτήρας μιας εντολής είναι ο # ότι ακολουθεί είναι σχόλιο. Π.χ. Set a 10; # variable test

Τελεστές στην TCL

Οι σημαντικότεροι τελεστές της TCL είναι:  Αριθμητικοί τελεστές +, -, *, /, %  Σχεσιακοί τελεστές <, >, <=, =>, == , !=  Λογικοί τελεστές && , ||

Εκφράσεις στην TCL

Οι εκφράσεις στην TCL υπολογίζονται με την εντολή expr.

Π.χ. η expr ((300/93.5)*0.965) /2 Επιστρέφει 1.548

Πίνακες στην TCL

  Οι πίνακες όπως και οι μεταβλητές ορίζονται με την εντολή set π.χ. Set esoda (Iounios) 3500 H TCL υποστηρίζει μόνο μονοδιάστατους πίνακες αλλά οι πολυδιάστατοι μπορούν να εξομοιωθούν με τη σύνδεση πολλών δεικτών σε ένα μοναδικό στοιχείο.

Π.χ. Set pinakas (1,1) 100 set pinakas (1,2) 200 set i 1 set j 1 set pinakas (1,3) 300 set S $pinakas ($i,$j)

Λίστες στην TCL

Οι βασικές λειτουργίες πάνω σε λίστες είναι Concat list?list συνενώνει λίστες Index list index επιστρέφει το στοιχείο με δείκτη Index Insert list value?value?... Εισάγει στοιχεία Length list Lsort Lsearch επιστρέφει το μήκος της λίστας ταξινόμηση λιστών αναζήτηση σε Λίστες

Αρχεία στην TCL

Η TCL παρέχει εντολές  Για εγράφη και ανάγνωση αρχείων  Για ανάκτηση πληροφοριών αρχείων από το σύστημα όπως η ώρα τελευταίας πρόσβασης  Για τον χειρισμό των ονομάτων των αρχείων

ΤΚ – buttons

H εντολή button δημιουργεί ένα κουμπί σε ένα παράθυρο. Π.χ. Button .goodbye – text Bye! – command {exit} pack . Goodbye –padx 60 – pady 5

TK – checkButtons - radioButtons

checkbutton .c1 -text Bold -variable bold checkbutton .c2 -text Italics -variable italics radiobutton .r1 -text Helvetica -variable font -value helvetica radiobutton .r2 -text Courier -variable font -value courier

TK - listbox

Listbox insert end coral2 Listbox insert end coral3

TK - canvas

canvas .c -width 250 -height 100 set myoval [.c create oval 0 0 50 50 -fill orange] set myline [.c create line 50 50 100 100 -fill blue -width 4] .c bind $myoval {moveit $myoval %x %y} .c bind $myline {moveit $myline %x %y} grid .c -row 0 -column 0

TK - lebels

Δημιουργία ετικετών σε παράθυρο label .l1 -text "This is what the default label looks like" label .l2 -text "This is a yellow label on a blue background" -foreground Yellow -background Blue label .l3 -text "This is a label in Times 24 font" \ -font {-family times -size 24} # Put them in the window in row order grid .l1 -row 0 grid .l2 -row 1 grid .l3 -row 2

ΤΚ - bitmaps

 Ετικέτα bitmap Εμφανίζει εικόνες bitmap σε παράθυρα Π.χ.

Label .bitmap –bitmap @$HOME/pics/1.bmp

Pack .bitmap

ΤΚ – scroll bars

Δημιουργεί scroll bars σε παράθυρο Παράδειγμα: Listbox .files –yscrollcommand “.scroll set” Pack .files

Scrollbar .scroll –command “.files yview” Pack .scroll –fill y

TK - Scales

Δημιουργεί κλίμακες σε παράθυρα scale .scale -orient vertical -length 284 -from 0 -to 250 -tickinterval 50 Pack .scale

TK - Entries

Πλαίσια εισόδου label .l -text "Enter:" entry .e -width 40 -relief sunken -bd 2 -textvariable name button .b -text Clear -command {set name ""} grid .l -row 0 -column 0 -sticky e grid .e -row 0 -column 1 -sticky w grid .b -row 1 -column 0 -columnspan 2

TK - MessageBox

Μνήματα με την TK Message .msg –width 8c –justify left –relief raised\ -text “ Do you like me so far? “ Pack .msg

ΤΚ – open Files

 Επιλογή για άνοιγμα / αποθήκευση αρχείων set types { {"All Source Files" proc doIt {label} { grid .b -row 0 -column 0 grid .l -row 0 -column 1 {.tcl .c .h} } global types set file [tk_getOpenFile -filetypes $types -parent .] $label configure -text $file } label .l -text "No File" button .b -text "Select a file?" -command "doIt .l"