FENETRE

La fenêtre est le conteneur principal qui contient tous les autres widgets.

En tk la fenêtre principale (fenêtre mère) est nommée . (point).

Il existe une fenêtre mère qui est la fenêtre principale, et vous pouvez créer tout un tas de fenêtres filles.

Voici des tutoriels sur l'utilisation d'une fenêtre :

Introduction

Une fenêtre est l'élément conteneur par défaut de toute application réalisée en TK.

La fenêtre mère est nommée  par un point.

Mếme si elle n'est pas définie dans cet exemple ci-dessous, elle sera créée de manière implicite.

button .b1 -text "cliquez moi" 
pack .b1

Le résultat produit est :

Pour changer la taille par exemple, nous devons utiliser la commande wm :

wm geometry . 100x100+200+200

Pour créer une fenêtre fille, c'est à dire une autre fenêtre en plus de celle déjà crée, il faut utiliser la commande toplevel suivi du nom de votre nouvelle fenêtre comme ceci :

button .b1 -text "cliquez moi" -command {leclic}
pack .b1

proc leclic {} {
	toplevel .f2
	wm geometry .f2 100x100+200+200
}

Vous pourrez constater que si vous fermez la fenêtre où il y a le bouton, c'est à dire la fenêtre mère, le programme se ferme en fermant toutes les autres fenêtres.

Ajuster la taille d'une fenêtre

Pour ajuster la taille de la fenetre mère:

wm geometry . 100x200+300+400

largeur : 100 pixels
hauteur: 200 pixels
position en X : 300
position en Y : 400

Centrer une fenêtre à l'écran

Pour centrer une fenêtre mère à l'écran :

set width 350
set height 250
set x [expr { ( [winfo vrootwidth  .] - $width  ) / 2 }]
set y [expr { ( [winfo vrootheight .] - $height ) / 2 }]


wm title . "Center" 
wm geometry . ${width}x${height}+${x}+${y}

Ce n'est pas tout à fait vrai pour un multi écran,  car cette commande centre la fenêtre sur la planche entière sur le double écran par exemple.

Fermer / Quitter une fenêtre

Pour fermer la fenêtre mère et toutes les fenêtres filles , utilisez la commande exit fermera toute l'application comme ci-dessous :

button .hello -text "Quit" -command { exit }
place .hello -x 50 -y 50 
wm title . "Quit button" 
wm geometry . 350x250+300+300

la commande EXIT ferme l'application complète.


Pour fermer juste une fenêtre fille concernée faire :

button .hello -text "Quit" -command {destroy $mafenetre}

Enlever les bordures de la fenêtre

Pour enlever les bordures de votre fenêtre fille nommée .top par exemple, écrivez ceci :

wm overrideredirect .top 1

Connaître la résolution de votre écran

Pour connaître la résolution de votre écran écrivez ceci :

winfo screenwidth .
winfo screenheight .

Maximiser une fenêtre à l'ouverture

Pour maximiser une fenêtre à l'ouverture quelque soit la plateforme sur laquelle est lancé votre script TCL voici le code :

wm title . "Center" 
wm geometry . [winfo vrootwidth  .]x[winfo vrootheight .]+0+0

definir une icone pour  notre application

Pour afficher une icone en haut à gauche de la fenêtre ou dans la barre des tâches pour notre application voici comment faire :

  • Créer une image
  • la  définir en tant que : iconphoto par défaut.

un exemple :

# icone de l'application
image create photo icapp -file "./img/icon.png"
wm iconphoto . -default icapp

Connaitre la resolution de l'ecran, les couleurs, le nombre de pixel

Connaitre le nombre de couleur, le nombre de pixel par pouce ou la résoltion de votre écran, voici le code :

puts "color depth=[winfo screendepth .] ([winfo screenvisual .])"
puts "pixels per inch=[winfo pixels . 1i]"
puts "width=[winfo screenwidth .] height=[winfo screenheight .]"

 

 

 

 

 

fabien, le 20 août 2024 à 09:45

essai de commentaire