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

Post on 08-Jun-2020

1 views 0 download

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

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

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/

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

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

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

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

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"

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

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

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

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]"

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

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

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

...

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

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

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”

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

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

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

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

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

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

}

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”

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

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

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"

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}

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

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

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

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

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}

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

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".

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

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

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

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

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

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

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

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

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 ...

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]

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

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"

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

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

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

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).

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

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.

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>

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

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