Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de...

56
Intr oduction à Tcl/Tk François Bérard (http://iihm.imag.fr/fberard/ ) d’après John Ousterhout Octobre 2002

Transcript of Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de...

Page 1: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Intr

od

uct

ion

à T

cl/T

k

Fra

nço

is B

érar

d( http://iihm.imag.fr/fberard/)

d’a

prè

s Jo

hn

Ou

ster

ho

ut

Oct

ob

re 2

002

Page 2: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Qu

'est

-ce

qu

e

Tc

l/Tk

?

I

NT

RO

DU

CT

ION

À

T

CL

/T

K

-

2

-

Qu

'est

-ce

qu

e T

cl/T

k ?

•T

cl :

lang

age

de p

rogr

amm

atio

n in

terp

rété

•T

k : e

xten

sion

de

Tcl

pou

r le

s in

terf

aces

gra

phiq

ues

•A

uteu

r : J

ohn

Ous

terh

out (

Ber

kele

y U

nive

rsity

, pui

s Su

n M

icro

syst

ems,

pu

is S

crip

tics,

pui

s...)

•D

omai

ne p

ublic

(co

de s

ourc

e di

stri

bué)

http://tcl.sourceforge.net/

http://tcl.activestate.com/

Page 3: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Qu

'est

-ce

qu

e

Tc

l/Tk

?

I

NT

RO

DU

CT

ION

À

T

CL

/T

K

-

3

-

•M

ulti-

plat

e-fo

rme

◊U

NIX

(Po

six

/ X-W

indo

w)

◊M

acin

tosh

(cl

assi

c, X

-Win

dow

sou

s O

S-X

)◊

Win

dow

s (3

.1 /

95 /

NT

/ 2K

/ ...

)

•Fa

cile

men

t ext

ensi

ble

(“gl

ue la

ngag

e”)

•N

ombr

euse

s ex

tens

ions

par

des

con

trib

utio

ns e

xtér

ieur

es (

nouv

eaux

w

idge

ts, g

roup

war

e, r

ésea

u, 3

D, b

ase

de d

onné

es, .

..)

•R

éfér

ence

en

ligne

http://iihm.imag.fr/fberard/ens/ref/TclTk8.4.0/

•T

utor

iel e

n lig

ne

http://www.msen.com/~clif/TclTutor.html

Page 4: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

ga

g

e

Tc

l

I

NT

RO

DU

CT

ION

À

T

CL

/T

K

-

4

-

Le

lan

gag

e T

cl

App

rent

issa

ge e

n 2

phas

es :

•L

es r

ègle

s du

lang

age

Sim

ple

mai

s dé

rout

ant

•L

a “b

iblio

thèq

ue”

de f

onct

ions

Se d

écou

vre

au f

ur e

t à m

esur

e de

s be

soin

s

Page 5: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

ga

g

e

Tc

l

I

NT

RO

DU

CT

ION

À

T

CL

/T

K

Les

règ

les

du

lan

ga

g

e

-

5

-

LE

S R

ÈG

LE

S D

U L

AN

GA

GE

•Sc

ript

Tcl

séqu

ence

de

com

man

des

com

man

des

sépa

rées

par

des

poi

nts-

virg

ules

ou

reto

ur à

la li

gne

•C

omm

ande

Tcl

un o

u pl

usie

urs

mot

s sé

paré

s pa

r de

s es

pace

sle

pre

mie

r m

ot :

le n

om d

e la

com

man

dele

s au

tres

mot

s : l

es a

rgum

ents

set a 22; set b33

set a 22

set b 23

Page 6: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Éva

luat

ion

d'un

e co

mm

ande

- 6

-

Éva

luat

ion

d'u

ne

com

man

de

Pré

proc

esse

ur

Trai

tant

de

la c

omm

andeC

om

man

de

Mo

ts

Rés

ult

atSép

are

les

mot

s,ef

fect

ue le

s su

bstit

utio

ns

Inte

rprè

te le

s m

ots,

prod

uit u

n ré

sulta

t

Page 7: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Arg

umen

ts-

7 -

Arg

um

ents

•L

e pr

épro

cess

eur

ne f

ait a

ucun

e év

alua

tion

des

argu

men

ts

C:x = 4

y = x+10;

// y est 14

Tcl:

set x 4

set y x+10

# y est "x+10"

Page 8: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Arg

umen

ts-

8 -

•L

es c

omm

ande

s as

soci

ent d

iffé

rent

es s

éman

tique

s au

x ar

gum

ents

set length 10

# length est un nom de variable

string length length

# length (1er) est une "sous-commande"

# length (2ème) est une chaîne de caractères

llength length

# length est une liste

Page 9: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Sub

stitu

tion

de v

aria

ble

- 9

-

Su

bst

itu

tio

n d

e va

riab

le

•Sy

ntax

e : $identificateur

•Id

entifi

cate

ur :

lettr

es o

u ch

iffr

es o

u so

ulig

nés

•Pe

ut a

ppar

aîtr

e n'

impo

rte

où d

ans

un m

ot

# exemple de commande

résultat

set b 66

66

set a b

b set a $b

66

set a $b+$b+$b

66+66+66

set a $b.3

66.3

set a $b4

erreur: variable inconnue

Page 10: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Sub

stitu

tion

de c

omm

ande

- 10

-

Su

bst

itu

tio

n d

e co

mm

and

e

•Sy

ntax

e : [script]

•E

xécu

te le

scr

ipt,

subs

titue

le r

ésul

tat

•Pe

ut a

ppar

aîtr

e n'

impo

rte

où d

ans

un m

ot

# exemples de commande

résultat

set b 8

8 set a [expr $b+2]

10

set a "b-3 is [expr $b-3]"

b-3 is 5

Page 11: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Con

trôl

e de

la s

truc

ture

des

mot

s-

11 -

Co

ntr

ôle

de

la s

tru

ctu

re d

es m

ots

Les

mot

s so

nt s

épar

és p

ar d

es e

spac

es e

t des

poi

nts-

virg

ules

, MA

IS :

•L

es g

uille

met

s em

pêch

ent l

a sé

para

tion

des

mot

s

set a "un mot avec des espaces"

•L

es a

ccol

ades

em

pêch

ent l

a sé

para

tion

des

mot

s et

les

subs

titut

ions

set a {set a [expr $a+1]}

# a est "set a [expr $a+1]"

Page 12: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Con

trôl

e de

la s

truc

ture

des

mot

s-

12 -

•L

'ant

isla

sh “

bana

lise”

les

cara

ctèr

es s

péci

aux

set a un\ mot\ avec\ \$

# a est "un mot avec $"

•L

es s

ubst

itutio

ns n

e ch

ange

nt p

as la

str

uctu

re d

es m

ots

set a "un mot"

set b $a

Page 13: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es r

ègle

s d

u la

ng

age

Tabl

eaux

ass

ocia

tifs

- 13

-

Tab

leau

x as

soci

atif

s

# exemples de commande

résultat

set x(fred) 44

set x(2) [expr $x(fred)+6]

set x(fred,12) 66

array names x

fred 2 fred,12

array size x

3

Page 14: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

- 14

-

LA

BIB

LIO

TH

ÈQ

UE T

CL

Exp

ress

ions

Stru

ctur

es d

e co

ntro

lePr

océd

ures

Man

ipul

atio

n de

list

esA

utre

...

Page 15: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Exp

ress

ions

- 15

-

Exp

ress

ion

s

•M

ême

styl

e qu

'en

C, p

lus

des

opér

atio

ns s

ur le

s ch

aîne

s

•L

es s

ubst

itutio

ns o

nt li

eu d

ans

les

expr

essi

ons

•U

tilis

ées

par expr

, mai

s au

ssi d

'aut

res

com

man

des

com

me if

, while.

# exemples de commande

résultat

set b 5

5 expr ($b * 4) -3

17

expr $b<=2

0 set b [expr $b * [fac 4]]

120

Page 16: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Exp

ress

ions

- 16

-

•C

hoix

ent

ier

/ flot

tant

impl

icite

# exemples de commande

résultat

expr 3 / 2

1 expr 3 / 2.0

1.5

set a 2

expr 3 / double($a)

1.5

Page 17: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Str

uctu

res

de c

ontr

ôle

- 17

-

Str

uct

ure

s d

e co

ntr

ôle

Des

com

man

des

qui p

renn

ent d

es s

crip

ts T

cl e

n ar

gum

ent :

le

s st

ruct

ures

de

cont

rôle

ne

font

pas

par

tie d

e la

syn

taxe

de

Tcl

if {$x < 3} {

set x 3

} # nom de la commande : “if”

# premier argument: “$x < 3”

# second argument: “set x 3”

Page 18: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Str

uctu

res

de c

ontr

ôle

- 18

-

Com

man

des

de s

truc

ture

de

cont

rôle

ifswitch

for

break

foreach

continue

while

eval

Page 19: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Pro

cédu

res

- 19

-

Pro

céd

ure

s

•L

a co

mm

ande

proc

défin

it un

e pr

océd

ure

•L

es p

rocé

dure

s so

nt a

ppel

ées

com

me

les

com

man

des

de la

bili

othè

que

Tcl

puts [sub1 3]

=> 2

proc sub1 { x } { return [expr $x - 1] }

nom lis

te d

es n

oms

des

argu

men

ts

corp

s de

la p

roc

dure

Page 20: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Pro

cédu

res

- 20

-

•L

es v

aria

bles

d’u

ne p

rocé

dure

s so

nt lo

cale

s pa

r dé

faut

. Acc

ès a

ux

vari

able

glo

bale

s gr

âce

à “ global”

.

proc toto { } {

global b

set a 10

set b 20

} set a 1; set b 2

toto

puts “$a $b”

=> 1 20

Page 21: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Pro

cédu

res

- 21

-

•Pa

ssag

e de

par

amèt

res

“par

réf

éren

ce”:

upvar

proc test { var1Name var2 } {

upvar $var1Name var1

set var1 1 ; set var2 2

} set var1 0 ; set var2 0

test var1 var2

puts “var1: $var1 var2: $var2”

=> var1: 1 var2: 0

Page 22: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Pro

cédu

res

- 22

-

•V

aleu

r pa

r dé

faut

des

arg

umen

ts

proc decr { varName {y 1}} {

upvar $varName v

return [set v [expr $v - $y]]

} # on peut appeler “decr” avec un seul argument,

# dans ce cas “y” prend pour valeur “1”

set count 10

decr count

=> 9

decr count 3

=> 6

Page 23: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

Pro

cédu

res

- 23

-

•N

ombr

e d'

argu

men

ts v

aria

ble

: nom

mer

le d

erni

er a

rgum

ent “

args

”, il

co

ntie

ndra

la li

ste

(peu

t êtr

e vi

de)

des

argu

men

ts.

proc Addition { a b args } {

set sum [expr $a + $b]

foreach v $args {

incr sum $v

} return $sum

}

Page 24: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

List

es-

24 -

Lis

tes •

Plus

ieur

s él

émen

ts (

éven

tuel

lem

ent z

éro)

sép

arés

par

des

esp

aces

rouge vert bleu

•A

ccol

ades

et a

ntis

lash

per

met

tent

de

grou

per

a b {c d e} f

# liste de 4 éléments, le 3ème élément est lui-même une liste

un\ mot deux trois

# liste de 3 éléménts, le premier élément est “un mot”

Page 25: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Le

lan

gag

e T

clIN

TR

OD

UC

TIO

N À

TC

L/T

KL

a b

iblio

thèq

ue

Tcl

List

es-

25 -

•C

omm

ande

de

man

ipul

atio

n de

list

es

concat

linsert

lreplace

foreach

list

lsearch

lappend

llength

lsort

lindex

lrange

lindex {a b {c d e} f} 2

=> c d e

Page 26: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

K

- 26

-

La

bib

lioth

èqu

e T

k

L'e

xten

sion

de

Tcl

la

plus

con

nue

et u

tilis

ée,

la s

eule

à ê

tre

dist

ribu

ée

avec

Tcl

.

Fonc

tion

: boî

te à

out

il po

ur la

con

stru

ctio

n d’

inte

rfac

es g

raph

ique

s

Page 27: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KP

rin

cip

es-

27 -

PR

INC

IPE

S

•D

iffé

rent

es c

lass

es d

e “w

idge

ts”

(win

dow

gad

get)

button, scrollbar, entry, ...

•C

omm

ande

s de

cré

atio

n de

wid

get

button .b -text "Ok"

•C

omm

ande

s de

rec

onfig

urat

ion

de w

idge

t

.b configure -text "Stop"

Page 28: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KP

rin

cip

es-

28 -

•G

estio

n du

pla

cem

ent :

le "

plac

er"

et le

"pa

cker

"

pack .b -side bottom

•C

omm

ande

s de

ges

tion

des

évén

emen

ts

bind all <Enter> {.b invoke}

Page 29: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KP

rin

cip

esC

lass

es d

e W

idge

t-

29 -

Cla

sses

de

Wid

get

Une

cla

sse

de W

idge

t défi

nit l

'asp

ect e

t le

com

port

emen

t (lo

ok a

nd f

eel)

des

fenê

tres

de

cette

cla

sse.

Cla

sses

défi

nies

par

Tk

frame

menubutton

label

menu

button

message

checkbutton

entry

radiobutton

text

canvas

scrollbar

scale

listbox

toplevel

Page 30: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KP

rin

cip

esLa

hié

rarc

hie

de w

idge

ts-

30 -

La

hié

rarc

hie

de

wid

get

s

.list

box

.men

u.s

crol

lbar

.

.men

u.fi

le.m

enu.

help

Page 31: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KP

rin

cip

esTy

pes

de fe

nêtr

es-

31 -

Typ

es d

e fe

nêt

res

.list

box

.men

u.s

crol

lbar

.

.men

u.fi

le.m

enu.

help

.dlg

.dlg

.msg

.dlg

.ok

.dlg

.ann

ule

Fen

être

pri

nci

pal

e

Fen

être

“to

p-l

evel

Fen

être

s in

tern

es

Page 32: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

réat

ion

de w

idge

ts-

32 -

MIS

E E

N O

EU

VR

E

Cré

atio

n d

e w

idg

ets

•To

ut w

idge

t a u

ne c

lass

e (b

utto

n, s

collb

ar, e

tc...

)

•Il

exi

ste

une

com

man

de T

cl p

our

chaq

ue c

lass

eel

le a

le m

ême

nom

que

la c

lass

eel

le c

rée

des

inst

ance

s de

cet

te c

lass

ebutton

.a.b -text Quit

scrollbar

.x

-orient vertical

nom

de

la c

lass

e

nom

de

la f

enêt

re

opti

ons

deco

nfig

urat

ion

Page 33: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eO

ptio

ns d

e co

nfigu

ratio

n-

33 -

Op

tio

ns

de

con

fig

ura

tio

n

•C

haqu

e cl

asse

de

wid

get a

un

ense

mbl

e d’

optio

ns q

ui lu

i son

t ap

plic

able

s

•B

eauc

oup

d'op

tions

son

t com

mun

es à

plu

sieu

rs c

lass

es

button

.b -text

Ok

message

.m -text

Valeur

•C

erta

ines

opt

ions

ont

une

sig

nific

atio

n di

ffér

ente

sel

on la

cla

sse

button

.b -command {exit 0}

Page 34: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eO

ptio

ns d

e co

nfigu

ratio

n-

34 -

•C

erta

ines

opt

ions

son

t spé

cifiq

ues

à un

e cl

asse

par

ticul

ière

scale

.s-from 10 -to 20

•Q

uand

elle

s ne

son

t pas

spé

cifié

es à

la c

réat

ion

du w

idge

t, de

s va

leur

s pa

r dé

faut

(ra

ison

nabl

es)

sont

util

isée

s.

•C

erta

ines

opt

ions

des

“to

plev

el”

sont

gér

ées

par

le g

estio

nnai

re d

e fe

nêtr

e du

sys

tèm

e (w

indo

ws

man

ager

): wm

wm title . “My Application”

wm geometry .t 320x200+12+100

Page 35: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

35 -

Co

ntr

ôle

de

la d

isp

osi

tio

n d

es w

idg

ets

à l’é

cran

•G

éré

par

les

"geo

met

ry m

anag

er",

non

pas

par

les

wid

gets

.

•L

es w

idge

ts n

'app

arai

ssen

t pas

sur

l'éc

ran

tant

qu'

ils n

e so

nt p

as "

géré

s".

Page 36: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

36 -

"geo

met

ry m

anag

er"

=

algo

rith

me

pour

arr

ange

r le

s fe

nêtr

es e

scla

ves

par

rapp

ort à

leur

fen

être

maî

tre.

Tai

lle d

ésir

éepa

r l'e

scla

vePa

ram

ètre

s du

prog

ram

meu

rT

aille

et p

ositi

ondu

maî

tre

Tai

lle e

t pos

ition

de l'

escl

ave

Tai

lle d

ésir

éepo

ur le

maî

tre

Geo

met

ryM

anag

er

Page 37: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

37 -

Rel

atio

n m

aîtr

e -

escl

ave

•Pa

r dé

faut

c’e

st là

mêm

e qu

e “p

aren

t - d

esce

ndan

t”

•Pe

ut ê

tre

mod

ifiée

par

l’op

tion

“ -in

” de

s ge

stio

nnai

res

de g

éom

étri

e

Page 38: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

38 -

Le

"pla

ceur

"

•Si

mpl

e à

utili

ser,

mai

s ne

trai

te q

ue le

s ca

s si

mpl

es.

•To

us le

s es

clav

es s

ont p

lacé

s in

divi

duel

lem

ent p

ar r

appo

rt à

leur

maî

tre

Page 39: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

39 -

Les

dif

fére

ntes

éta

pes:

•D

éfini

r la

pos

ition

de

l’an

cre

(abs

olue

ou

rela

tive)

dan

s le

maî

tre

-x -y -relx -rely

•D

éfini

r le

poi

nt d

’anc

rage

du

wid

get s

ur l’

ancr

e

-anchor (c|n|ne|e|se|s|sw|w|nw)

•D

éfini

r la

taill

e (a

bsol

ue o

u re

lativ

e) d

u w

idge

t

-width -height -relwidth -relheight

n sseene

nw w sw

c

Page 40: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

40 -

place .x -x 0 -y 0

place .x -relx 0.5 -y 1.0c -anchor n

place .x -relx 0.5 -rely 0.5

place .x -relheight 0.5 -relwidth 0.5

-height 3c -anchor center

-relx 0 -rely 0.5

Page 41: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

41 -

Le

"pac

keur

"

•Pl

ace

les

wid

gets

rel

ativ

emen

t les

un

par

rapp

ort a

ux a

utre

s

•Pe

rmet

des

age

ncem

ents

plu

s co

mpl

exes

qu’

avec

le p

lace

ur

Page 42: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

42 -

Les

dif

fére

ntes

éta

pes:

Pour

tous

les

escl

aves

, dan

s l'o

rdre

:

1. C

hois

it un

côt

é du

maî

tre

2. C

oupe

une

tran

che

du m

aîtr

e

3. A

gran

dit l

'esc

lave

pou

r re

mpl

ir la

tran

che

(opt

ionn

el)

4. P

ositi

onne

l'es

clav

e da

ns la

tran

che

Page 43: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

43 -

Ava

ntag

es d

u pa

cker

:

•C

onsi

dère

les

rela

tions

ent

re e

scla

ves

◊L

igne

s et

col

onne

s de

wid

gets

fac

iles

à ré

alis

er◊

Aju

ste

l'arr

ange

men

t glo

bal q

uand

un

escl

ave

dem

ande

une

m

odifi

catio

n de

taill

e

•C

alcu

le la

taill

e dé

siré

e po

ur le

maî

tre

◊Ju

ste

asse

z gr

and

pour

tous

les

escl

aves

◊A

just

e lo

rsqu

e le

s es

clav

es c

hang

ent l

eur

taill

e◊

Aut

oris

e un

e ge

stio

n du

pla

cem

ent h

iéra

rchi

que

Page 44: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

ontr

ôle

de la

dis

posi

tion

des

wid

gets

à l’

écra

n-

44 -

Le

“gri

ddeu

r” ?

Idéa

l pou

r al

igne

r le

s w

idge

ts d

ans

un ta

blea

u (l

igne

s / c

olon

nes)

.

grid .b -column 2 -colspan 4 -row 10 ...

Page 45: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

omm

ande

de

wid

get

- 45

-

Co

mm

and

e d

e w

idg

et

•Po

ur to

ut w

idge

t cré

é, u

ne c

omm

ande

Tcl

aya

nt le

mêm

e no

m e

st

égal

emen

t cré

ée.

Cet

te c

omm

ande

per

met

de

reco

nfigu

rer

et m

anip

uler

le w

idge

t

button .a.b

.a.b configure -relief sunken

.a.b invoke

scrollbar .a.s

.a.s set 100 10 5 14

set toto [.a.s get]

Page 46: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eC

omm

ande

de

wid

get

- 46

-

•So

us-c

omm

ande

s co

mm

unes

à to

us le

s w

idge

t : “configure”

et “

cget

.x configure -option arg ...

.x cget -option

Page 47: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eG

estio

n de

s év

énem

ents

- 47

-

Ges

tio

n d

es é

vén

emen

ts

•A

ssoc

iatio

n co

mm

e op

tion

de w

idge

t

button .a.b -command exit

scrollbar .a.s -command ".y yview"

•A

ssoc

iatio

n ex

plic

ite

bind .t a "insert a"

bind Button <3> "help %W"

bind .t <Any-KeyPress> "insert %A"

bind all <Control-q> "quit"

Page 48: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eA

utre

s se

rvic

es-

48 -

Au

tres

ser

vice

s

•D

estr

uctio

n de

wid

gets

destroy .x

•In

form

atio

n su

r le

s fe

nêtr

es à

l’ex

écut

ion

winfo width .x

# différent de l’option “-width” à cause du geometry manager

•G

estio

n du

foc

us d

u cl

avie

r

focus .x.y

Page 49: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eA

utre

s se

rvic

es-

49 -

•Sé

lect

ion

cour

ante

selection get

•C

omm

ande

s du

ges

tinna

ire

de f

enêt

res

syst

ème.

wm title . "Edition de main.c"

wm geometry . 320x200

wm iconify .

wm resizable . 0 0

Page 50: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eA

utre

s se

rvic

es-

50 -

•Fe

nêtr

e m

odal

es

grab .x

grab release .x

Page 51: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KM

ise

en o

euvr

eA

utre

s se

rvic

es-

51 -

•U

tilis

atio

n de

la b

iblio

thèq

ue d

e w

idge

ts T

k

com

man

defo

nctio

n

tk_g

etO

penF

iletk

_get

Sav

eFile

tk

_cho

oseD

irect

ory

Ouv

re u

ne b

oîte

de

séle

ctio

n de

fich

ier

(pou

r la

lect

ure

ou la

sau

vega

rde

ou le

cho

ix d

’un

répe

rtoi

re)

tk_m

essa

geB

oxA

ffich

e un

mes

sage

dan

sun

e bo

îte d

e di

alog

ue

tk_o

ptio

nMen

uA

ffich

e un

bou

ton

fais

ant a

ppar

aîtr

eun

men

u dé

roul

ant q

uand

on c

lique

des

sus

tk_p

opup

Fait

appa

raîtr

e un

men

u dé

roul

ant à

un

e po

sitio

n (x

,y)

de l’

écra

n

tk_c

hoos

eCol

orA

ffich

e un

e bo

îte d

ech

oix

de c

oule

ur

tk_d

ialo

gA

ffich

e un

e bo

îte d

e di

alog

ue a

vec

choi

x (V

alid

er /

Ann

uler

, oui

/ no

n).

Page 52: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

La

bib

lioth

èqu

e T

kIN

TR

OD

UC

TIO

N À

TC

L/T

KE

xem

ple

s-

52 -

EX

EM

PL

ES

La

dém

onst

ratio

n “w

idge

t” in

clue

dan

s la

dis

trib

utio

n de

Tcl

/Tk

•So

us M

acO

S

Dossier Système:Extensions:Tool Command Langage:Tk8.3:demos:widget

•So

us U

NIX

/usr/local/lib/tk8.3/demos/widget

•So

us M

S W

indo

ws

c:\Program Files\Tcl\lib\tk8.3\demos\widget.tcl

Page 53: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Tru

cs &

ast

uce

sIN

TR

OD

UC

TIO

N À

TC

L/T

KR

end

re u

n s

crip

t ex

écu

tab

le-

53 -

Tru

cs &

ast

uce

s

RE

ND

RE U

N S

CR

IPT E

CU

TA

BL

E

•So

us M

acO

S U

tilis

er l’

appl

icat

ion

“Dra

g &

Dro

p T

clet

s”

•So

us M

S W

indo

ws

◊C

réer

un

racc

ourc

i ver

s w

ish

◊M

odifi

er le

s pr

orié

tés

du r

acco

urci

: ajo

uter

le n

om d

u sc

ript

en

fin

de c

omm

ande

, mod

ifier

le c

hem

in p

ar d

éfau

t.

Page 54: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Tru

cs &

ast

uce

sIN

TR

OD

UC

TIO

N À

TC

L/T

KR

end

re u

n s

crip

t ex

écu

tab

le-

54 -

•So

us U

NIX

◊In

diqu

er le

“sh

ell”

à u

tilis

er s

ur la

pre

miè

re li

gne

du s

crip

t

#!/usr/local/bin/wish

... ou

mie

ux

#!/bin/sh

#\

exec wish “$0” “$@”

...

◊R

endr

e ex

écut

able

le fi

chie

r qu

i con

tient

le s

crip

t

chmod a+x <nom du fichier>

Page 55: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Tru

cs &

ast

uce

sIN

TR

OD

UC

TIO

N À

TC

L/T

KL

es é

dit

eurs

de

scri

pts

- 55

-

LE

S É

DIT

EU

RS D

E S

CR

IPT

S

Tout

édi

teur

de

text

e pe

ut ê

tre

utili

sé,

mai

s ce

rtai

ns é

dite

urs

offr

ent

la co

lora

tion

synt

axiq

ue, l

’ind

ex d

es p

rocé

dure

s, e

tc...

•M

acO

SA

lpha

: http://alpha.olm.net/

•U

NIX

Em

acs,

NE

dit: http://nedit.org/

•M

S W

indo

ws

Text

Pad:

http://www.textpad.com/

, si fi

chie

r de

syn

taxe

néc

essa

ire:

http://iihm.imag.fr/fberard/ens/ref/TclTk8.3.3/tcltk.syn

Page 56: Intr - imagiihm.imag.fr/fberard/ens/ref/TclTk.pdf · 2002-10-14 · Script Tcl séquence de commandes commandes séparées par des points-virgules ou retour à la ligne • Commande

Réf

éren

ces

INT

RO

DU

CT

ION

À T

CL

/TK

- 56

-

Réf

éren

ces

Pag

es o

ffici

elle

s de

Tcl

Tk

(tél

écha

rgem

ent d

u lo

gici

el)

http://tcl.sourceforge.net/

http://tcl.activestate.com/

Doc

umen

tatio

n en

-lign

ehttp://iihm.imag.fr/fberard/ens/ref/TclTk8.3.3/

Tuto

riel

http://www.msen.com/~clif/TclTutor.html