Problème de fonctionnement de la barre de défilement en relation avec un canevas
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.tcl ]
Sujet: Problème de fonctionnement de la barre de défilement en relation avec un canevas
De: ...@bluemail.ch (frf)
Groupes: fr.comp.lang.tcl
Organisation: Bluewin AG
Date: 28. Apr 2008, 20:29:55
|
Salut.
J'aimerai lister les différentes polices de caractères de mon système dans
un fichier postscript à l'aide des commandes du langage Tcl-Tk. J'ai essayé
de créer un texte avec les différentes police dans un canvas afin de les
imprimer selon le format postscript.
J'ai un problème au niveau de la barre de défilements (scrollbar) dans le
canevas: elle est bloquée. Pourtant de nouvelles valeurs sont créées à
l'intérieur du canevas par "$trame.cnv create text ..."
Comment faire marcher la scrollbar et le canevas ensemble pour que je puisse
faire défiler les valeur de texte ainsi créées à l'intérieur du canevas?
Merci d'avance!
A+
--------------------------------------------------------------------------------------------------------------------------
Voici le code:
#\ exec tclsh "$0" ${1+"$@"}
#console show
package require Tk
#--------------------------------
proc Attendre {} {
global trame;
global value
set value 0;
while { $value == 0 } {
update;
bind $trame.bouton_Continuer <Button> {global value; set value 1 }
}; #end of while
};#end of Attendre
#--------------------------------
proc Impression {} {
global trame;
# Path to the gswin32c.exe:
#set gspath {C:\\Program Files\\gs\\gs8.61\\bin\\gswin32c.exe}
# Open pipe to gs:
#set gs [open "|\"$gspath\" -q -sDEVICE=mswinpr2 -dNOPAUSE -dBATCH -" w];
# Print the page:
#$trame.cnv postscript -channel $gs
$trame.cnv postscript -file "[pwd]\\Test.ps"
# Close the pipe, sends page to printer:
#close $gs
exit
};#end of Impression
#--------------------------------
catch {destroy .fr}
wm title . "Liste des polices de caractères";
set trame [frame .fr]
# set trame2 frame $trame.fr2];
# Create a canvas:
label $trame.etiquette -justify center;
button $trame.bouton_Continuer -text "Continuer"
canvas $trame.cnv -background white -yscrollcommand "$trame.ascenseur set";
scrollbar $trame.ascenseur -command "$trame.cnv yview";
button $trame.bouton -command Impression -text "Print";
pack $trame
pack $trame.etiquette -side top
pack $trame.bouton_Continuer
pack $trame.cnv -side left -fill x -fill y
pack $trame.ascenseur -side left -fill y
pack $trame.bouton -side bottom
set ListeFonts [font families];
set indice 0;
set ContinueOK 1;
while { $indice <= [llength $ListeFonts] } {
set police [lindex $ListeFonts [expr $indice + 3]];
set texte_etiquette
"$police\n\nabcdefghijklmnopqrstuvwxyz\nABCDEFGHIJKLMNOPQRSTUVWXYZ\n0123456789"
set etiquette [$trame.etiquette configure -text
$texte_etiquette -font [list $police 14]];
# Add something for printing:
set texte_police
"abcdefghijklmnopqrstuvwxyz\nABCDEFGHIJKLMNOPQRSTUVWXYZ\n0123456789";
$trame.cnv create text 3.5c [expr 2 * $indice + 1.5]c -justify
center -text $texte_police -font [list $police 14];
incr indice;
Attendre;
};#end of while

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|