GDeLTK

TCL/TK

Notepad++

Wine

Linux

XML

FOP

Guitare

Voyages?

Citations

Reste à faire

edit SideBar


Historique de TCLTK.TrucsEtAstuces

Cacher les modifications mineures - Affichage du code

07/12/2009 18:11 par 82.224.191.36 -
Ligne 131 modifiée:

Installation de Tcl/tK à partir des sources

en:

Installation de Tcl/tK à partir des sources (Compiler Tcl/tk sur linux)

07/12/2009 18:09 par 82.224.191.36 -
Lignes 130-147 ajoutées:

Installation de Tcl/tK à partir des sources

Pour tcl :

 $ cd /opt/amsn_aa/
 wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.5.0-src.tar.gz
 tar xvzf tcl8.5.0-src.tar.gz
 cd /opt/amsn_aa/tcl8.5.0/unix
 ./configure --prefix=/usr/local --includedir=/usr/local/include/tcl8.5 --enable-shared --enable-threads --mandir=/usr/local/share/man --enable-man-symlinks --enable-man-compression=gzip && make CFLAGS="-g -O2 -D_REENTRANT" && make install

Pour Tk

 cd /opt/amsn_aa/
 wget http://switch.dl.sourceforge.net/sourceforge/tcl/tk8.5.0-src.tar.gz
 tar xvzf tk8.5.0-src.tar.gz
 cd /opt/amsn_aa/tk8.5.0/unix
 ./configure --prefix=/usr/local --includedir=/usr/local/include/tcl8.5 --with-tcl=/usr/local/lib --enable-shared --enable-threads --enable-man-symlinks --enable-man-compression=gzip --enable-xft && make CFLAGS="-g -O2 -D_REENTRANT" && make install
07/12/2009 18:06 par 82.224.191.36 -
Lignes 108-129 ajoutées:

Création d’un paquetage

Cette opération doit se faire en trois étapes :

  • Ajouter la commande package provide à votre script.
  • Fabriquer un fichier pkgIndex.tcl.
  • Installer le paquetage dans un répertoire où Tcl recherche ses paquetages.

Ajouter la commande package provide à votre script est aisé ; il est recommandé de la placer en début de fichier, où elle sera facile à identifier. Vous devrez lui fournir deux arguments : le nom et la version du paquetage. Un numéro de version comporte des entiers séparés entre eux par des points : par exemple 0.1, 1.3, 2.1.0, etc…

Pour fabriquer un fichier pkgIndex.tcl, le moyen le plus simple est la commande pkg_mkIndex. Cette dernière recherche les fichiers scripts Tcl contenant l’instruction package provide, et crée le fichier pkgIndex.tcl contenant une ou plusieurs instructions package ifneeded.

Le paquetage est créé, mais pour que Tcl puisse le charger en mémoire, il faut le placer dans un répertoire où il le trouvera. Les variables globales tcl_pkgPath et auto_path contenant la liste de ces répertoires, il suffit, soit de placer le paquetage dans un de ces répertoires, soit d’ajouter (à l’exécution) le répertoire où il se trouve à la variable auto_path.

 package require ?-exact? nom ?version?
Charge le paquetage identifié par nom. Si -exact est présent, il faut fournir précisément la version demandée. Si -exact est absent, toute version disponible ultérieure à version sera chargée. Dans ce dernier cas, il doit y avoir correspondance avec le numéro majeur de version. Si version vaut 8.4, la version 8.5 sera acceptée, mais pas 9.0. En l’absence de version, la version la plus récente du paquetage sera chargée.
Cette commande retourne le numéro de version du paquetage chargé ; autrement, une erreur est retournée.
 package provide nom ?version?
Cette commande informe l’interpréteur Tcl que le paquetage nom est chargé. Lorsque vous créez un paquetage, c’est en l’incluant à la fin du fichier source principal que vous définirez le nom et, éventuellement, la version actuelle de votre paquet. Si vous spécifiez une version, vous devrez faire attention au fait que deux versions différentes du même paquetage ne peuvent être chargées en mémoire. Par contre, votre configuration peut disposer de plusieurs versions du même paquetage, c’est la commande package require qui déterminera la version chargée en mémoire.
 pkg_mkIndex ?-direct? ?-lazy? ?-load motif? ?-verbose? dossier ?motif motif ...?
Crée un fichier pkgIndex.tcl pour un ou plusieurs paquetages. Cette commande procède en chargeant les fichiers correspondant à motif dans le répertoire dossier, et en fichant les nouveaux paquetages apparus. Elle peut gérer des scripts Tcl comme des librairies natives (nous nous limiterons ici aux scripts Tcl).
26/04/2009 10:27 par 81.65.249.6 -
Lignes 1-3 ajoutées:

Télécharger les tclkit

Les binaires pour linux et windows sont disponibles ici : http://www.patthoyts.tk/tclkit/tclkit.html

18/04/2009 15:39 par 82.224.191.36 -
Lignes 72-73 modifiées:

...

en:
16/12/2008 21:06 par 82.224.191.36 -
Lignes 20-21 modifiées:

[Note] si vous obtenez cette erreur :

en:

[Note] si vous obtenez cette erreur :

Lignes 23-24 supprimées:

[Note] pour que l'exécution du programme tcl soit automatique, supprimer l'extension .tcl dans le nom du fichier et attribuer au fichier des droits d'exécution

Lignes 26-27 ajoutées:

[Note] Pour que l'exécution du programme tcl soit automatique, supprimer l'extension .tcl dans le nom du fichier et attribuer au fichier des droits d'exécution

16/12/2008 21:05 par 82.224.191.36 -
Lignes 22-23 ajoutées:

[Note] pour que l'exécution du programme tcl soit automatique, supprimer l'extension .tcl dans le nom du fichier et attribuer au fichier des droits d'exécution

16/12/2008 21:04 par 82.224.191.36 -
Ligne 20 modifiée:

[Note] si vous obtenz cette erreur :

en:

[Note] si vous obtenez cette erreur :

16/12/2008 21:04 par 82.224.191.36 -
Lignes 15-16 modifiées:

/!\ Sur certains systèmes unix, la première ligne est limitée à 30 carctères.

en:

/!\ Sur certains systèmes unix, la première ligne est limitée à 30 caractères.

Lignes 19-24 ajoutées:

[Note] si vous obtenz cette erreur :

 bash: ./clock : /bin/sh^M : mauvais interpréteur: Aucun fichier ou dossier de ce type

Il faut convertir le fichier tcl au format unix.

25/08/2008 21:29 par 82.224.191.36 -
Ligne 20 modifiée:

gestion des messages retournés par les programmes exécutés par exec

en:

Gestion des messages retournés par les programmes exécutés par exec

25/08/2008 21:29 par 82.224.191.36 -
Ligne 3 modifiée:

La ou les premières lignes du script tcl devront comporter l'interpréteur qui va traduire en langage machine les lignes de commandes écrites. Il y a 3 possibilités

en:

La ou les premières lignes du script tcl devront comporter l'interpréteur qui va traduire en langage machine les lignes de commandes écrites. Il y a 3 possibilités :

Ligne 6 ajoutée:

!#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet.

Ligne 11 supprimée:

!#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet.

25/08/2008 21:28 par 82.224.191.36 -
Ligne 9 modifiée:
 #la prochaine ligne démarre utilisant \
en:
 #la prochaine ligne démarre utilisant \
Ligne 11 modifiée:
 !#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet. 
en:

!#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet.

25/08/2008 21:27 par 82.224.191.36 -
Ligne 4 modifiée:
  1. soit on lance l'interpréteur wish (ou tclsh) en écrivant comme première ligne :
en:
  • soit on lance l'interpréteur wish (ou tclsh) en écrivant comme première ligne :
Lignes 6-7 modifiées:
  1. soit on lance l'interpréteur par le biais de l'application d'interprétation d'instructions (shell), sh :
en:
  • soit on lance l'interpréteur par le biais de l'application d'interprétation d'instructions (shell), sh :
Ligne 10 supprimée:
Ligne 12 ajoutée:
Ligne 14 ajoutée:
Ligne 17 modifiée:
  1. dernière possibilité, écrire en première ligne :
en:
  • dernière possibilité, écrire en première ligne :
Ligne 18 supprimée:
25/08/2008 21:26 par 82.224.191.36 -
Lignes 1-3 modifiées:

Démarrer des programmes tcl sous linux

la ou les premières lignes du script tcl devront comporter l'interpréteur qui va traduire en langage machine les lignes de commandes écrites. Il y a 2 possibilités

en:

Démarrer des programmes tcl sous linux

La ou les premières lignes du script tcl devront comporter l'interpréteur qui va traduire en langage machine les lignes de commandes écrites. Il y a 3 possibilités

Ligne 12 modifiée:

#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet.

en:
 !#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet. 
25/08/2008 21:25 par 82.224.191.36 -
Lignes 1-19 ajoutées:

Démarrer des programmes tcl sous linux

la ou les premières lignes du script tcl devront comporter l'interpréteur qui va traduire en langage machine les lignes de commandes écrites. Il y a 2 possibilités

  1. soit on lance l'interpréteur wish (ou tclsh) en écrivant comme première ligne :
 #!/usr/bin/wish
  1. soit on lance l'interpréteur par le biais de l'application d'interprétation d'instructions (shell), sh :
 #!bin/sh
 #la prochaine ligne démarre utilisant  exec wish "$0" "$@"

#/usr/bin/wish lance l'interpréteur donc mettre le chemin complet.

/!\ ne pas oublier \ à la fin de la seconde ligne /!\ Sur certains systèmes unix, la première ligne est limitée à 30 carctères.

  1. dernière possibilité, écrire en première ligne :
 #!/usr/bin/env tclsh
17/06/2008 07:35 par 82.224.191.36 -
Ligne 1 modifiée:

gestion des messages retournée par les programmes executés par exec

en:

gestion des messages retournés par les programmes exécutés par exec

17/06/2008 07:34 par 82.224.191.36 -
Lignes 1-11 ajoutées:

gestion des messages retournée par les programmes executés par exec

If you want the stderr of the program to go directly to the user:

 exec ... 2>@ stderr

If you also want the same to happen to stdout (and be routed to Tcl's stdout):

 exec ... 2>@ stderr >@ stdout

Though of course in this case you won't get the program's output back in [exec]'s result. But sometimes that's OK.

14/06/2008 08:23 par 82.224.191.36 -
Lignes 1-5 ajoutées:

Dupliquer un array

 array set argumentscopy [array get arguments] 
20/04/2008 20:29 par 82.224.191.36 -
Ligne 29 modifiée:

Connaître le nom de la police utilisée par TK : fon configure TkDefaultFont -family

en:

Connaître le nom de la police utilisée par TK : font configure TkDefaultFont -family

06/04/2008 19:11 par 82.224.191.36 -
Ligne 29 ajoutée:

Connaître le nom de la police utilisée par TK : fon configure TkDefaultFont -family

02/04/2008 19:55 par 82.224.191.36 -
Ligne 52 ajoutée:
  • linux est sensible à la casse.
30/03/2008 14:17 par 82.224.191.36 -
Ligne 10 modifiée:

State :

en:

State :

Ligne 13 modifiée:

Style :

en:

Style :

30/03/2008 14:17 par 82.224.191.36 -
Lignes 5-10 modifiées:
 style element names 

permet de lister les éléments d'un thème

Layout : fonction qui ppermet de définir la disposition des éléments

state : définit les état d'un élément

en:

La commande style element names permet de lister les éléments d'un thème

Layout :

fonction qui permet de définir la disposition des éléments

State :

définit les états d'un élément. disabled, normal focus pressed, selected...

Style :

Un style est affecté à chaque élément.

Il est possible de définir des styles dynamiques avec style map et des styles par défaut avec style configure La commande style lookup retourne le style d'un élémént

30/03/2008 14:12 par 82.224.191.36 -
Ligne 17 ajoutée:
Ligne 19 ajoutée:
30/03/2008 14:12 par 82.224.191.36 -
Lignes 1-20 ajoutées:

Quelques notions sur tile

Tile est un moteur de thème qui permet non seulement aux applications graphiques d'avoir la même apparence que celle du système d'exploitations depuis lesquelles elles sont lancées mais aussi de changer de thème.

Un thème s'applique à une collection d'éléments. Un élément est un "morceau" d'un widget : uparrow, Row, combobox.uparrow...

 style element names 

permet de lister les éléments d'un thème

Layout : fonction qui ppermet de définir la disposition des éléments

state : définit les état d'un élément

...

Polices utilisées par Tk

la commande font names retourne la liste des polices utiliées par Tk Tkdefaultfont est utilisée par tile style lookup default -font TkTextFont est utilisée par tablelist ...

Ligne 42 ajoutée:
  • les polices sont définies par défaut selon l'os. Il faut donc réajuster leur taille ou les redéfinir...
26/03/2008 01:18 par 82.224.191.36 -
Ligne 21 modifiée:
  • gestion de l'icône de l'application qui apparat en haut à gauche dans la fenêtre
en:
  • gestion de l'icône de l'application qui apparaît en haut à gauche dans la fenêtre
26/03/2008 01:17 par 82.224.191.36 -
Ligne 23 modifiée:

Affecter un double clic à un widget tk :

en:

Affecter un double clic à un widget tk :

26/03/2008 01:17 par 82.224.191.36 -
Lignes 22-27 ajoutées:

Affecter un double clic à un widget tk :

 bind . <Double-1> {
    puts "hi from (y)"
 }
24/03/2008 18:59 par 82.224.191.36 -
Ligne 21 ajoutée:
  • gestion de l'icône de l'application qui apparat en haut à gauche dans la fenêtre
24/03/2008 09:37 par 82.224.191.36 -
Ligne 1 supprimée:
Ligne 3 supprimée:
Ligne 8 modifiée:

font create tkconfixed -size [font configure $sfont -size] -family [font configure $sfont -family]

en:
  font create tkconfixed -size [font configure $sfont -size] -family [font configure $sfont -family]
Lignes 14-20 ajoutées:

Programmation sur linux et windows :

  • les chemins sont créés avec la commande [file join ...]
  • la police utilisée dans tk doit être standard dans les 2 os : par exemple, ne pas utiliser la police tahoma qui est uniquement disponible sur windows
  • le séparateur de classpath pour l'application java est : sur linux et ; sur windows
  • utiliser la variable ::env pour récupérer les chemins home...
  • les url qui pointent sur les fichiers doivent être distinguées : file:///c:/ pour windows et / pour linux
24/03/2008 09:35 par 82.224.191.36 -
Lignes 1-15 ajoutées:

Personnaliser la police de tkcon 2.5 sous linux

Depuis la version 8.5 de TCL/TK, les polices sont lissées, ce qui a pour conséquence malheureuse que la taille de la police de tkcon est trop petite pour mes petits yeux. Pour y remédier, j'ai édité le fichier tkon puis je suis rendu dans la procedure proc ::tkcon::AtSource et j'ai ajouté ces lignes :

 ...	
 set PRIV(SCRIPT) [info script]
 #<!-- HL : configuration de la police. Démarrage ajout des lignes
 set sfont [font create -family "Arial" -size "10"]

font create tkconfixed -size [font configure $sfont -size] -family [font configure $sfont -family]

 font create tkconfixedbold -size [font configure $sfont -size] -family [font configure $sfont -family] -weight bold
 # fin ajout-->
 if {!$PRIV(WWW) && [string length $PRIV(SCRIPT)]} {
 ...