perl/TK alignement de boutons - Perl - Programmation
Marsh Posté le 19-09-2002 à 12:55:31
circeedevalette a écrit a écrit : salut je suis en train de decouvrir le perl/TK et je souhaite placer 40 boutons sur une fenetre mais comme ils ne rentrent pas tous verticalement ou horizontalement je voudrais les aligner sur deux colonnes mais je n'arrive pas a le faire... connaissez vous le moyen d'y arriver merci |
si tu as une doc, je te conseille fortement de la lire
une p'tite url : http://www.cavi.univ-paris3.fr/ilp [...] perlintro/
je pense que tu utilise la méthode pack(), zieute un peu si ça donnerait po mieux avec grid() ?
Marsh Posté le 19-09-2002 à 14:08:56
je connaisait pas l'option grid merci!
mais pour avoir l'affichage (comme avec pack) on fait comment,
faut faire un "->gridColumnconfigure" avant le "->grid(-column => 0);" ?
parce que sinon j'ai pas d'affichage
Marsh Posté le 19-09-2002 à 15:17:13
circeedevalette a écrit a écrit : je connaisait pas l'option grid merci! mais pour avoir l'affichage (comme avec pack) on fait comment, faut faire un "->gridColumnconfigure" avant le "->grid(-column => 0);" ? parce que sinon j'ai pas d'affichage |
je n'utilise pas grid() mais ce que je sais, c'est qu'il vaut mieux n'utiliser qu'une seule méthode de gestion des objets sur le même widget
si tu utilise du pack() dans le code de ta widget et que tu insères du grid(), la cohabitation entre pack et grid == pas bon !
Marsh Posté le 20-09-2002 à 10:45:14
salut aricoh!
en fait, pour utiliser grid faut faire d'abord :
configuration des lignes :
$MW->gridRowconfigure(1, -weight => 0, -minsize => 30);
configuration des colonnes :
$MW->gridColumnconfigure(1, -weight => 0, -minsize => 30);
$MW->gridColumnconfigure(2, -weight => 1, -minsize => 30);
puis utiliser grid :
$Nom_Bouton1->grid(
-in => $MW,
-column => '1',
-row => '1',
);
sinon maintenant que j'arrive a aligner mes radiobuttons,
je n'arrive pas a recuperer la donnée "bouton1 coché" pour l'utiliser dans le rest de mon programme perl
Marsh Posté le 20-09-2002 à 12:01:44
circeedevalette a écrit a écrit : sinon maintenant que j'arrive a aligner mes radiobuttons, je n'arrive pas a recuperer la donnée "bouton1 coché" pour l'utiliser dans le rest de mon programme perl |
je crois savoir
Exemple perso :
dans un programme qui crée ses fichiers de sortie sur disque dur local ou sur le réseau (au choix du user), j'ai fait un bout de code comme ceci :
Code :
|
ce sont juste 2 malheureuses variables toutes simples
à côté de ça, j'ai 2 cases à cocher que voici :
Code :
|
à vérifier avec la méthode grid() mais je crois que ce qu'il te manque, c'est l'option -variable=>\$ma_variable
Maintenant, passons aux explications : si dans mon exemple, le user veut une création des fichiers sur le disque dur, il coche la case "Export sur disque dur", case nommée $mwBrLocal. Comme elle renvoie implicitement à la variable $ValueLocal, cette dernière vaut 1 si la case est cochée, sinon 0 si case non cochée
Lors de ton traitement, il devient alors fastoche de faire ton traitement en fonction des cases cochées, il suffit juste de tester si les variables vers lesquelles elles renvoient sont vraies (1) ou fausses (undef ou 0)
Marsh Posté le 20-09-2002 à 12:21:13
Tiens, ce script t'expliquera sans doute mieux le truc (je viens de le créer et l'ai testé, il marche) :
Code :
|
Marsh Posté le 20-09-2002 à 16:24:10
Aricoh a écrit a écrit : Tiens, ce script t'expliquera sans doute mieux le truc (je viens de le créer et l'ai testé, il marche) :
|
ok pour les checkbuton mais comment on fait pour obliger l'utilisateur a n'en cocher qu'un seul?
en VC++ on peut affecter la valeur 0 a la variable du checkbuton mais en TK il ne veut pas ...
Marsh Posté le 23-09-2002 à 08:18:53
circeedevalette a écrit a écrit : ok pour les checkbuton mais comment on fait pour obliger l'utilisateur a n'en cocher qu'un seul?en VC++ on peut affecter la valeur 0 a la variable du checkbuton mais en TK il ne veut pas ... |
A moins qu'il y ait un code évènement pour décocher un checkbutton si le user en a coché un autre, je ne crois pas que ça marche sur l'appli graphique et ses widgets
à toi de rajouter une vérif dans ton code : est-ce que + d'1 bouton coché ?
Marsh Posté le 24-09-2002 à 14:26:05
salut
j'avance bien dans le developpement de mon interface graphique
mais il me reste un petit probleme avec une Dialog box.
en effet, je declare ma Dialog box:
Citation : $DIALOG_ERREUR = $MW->Dialog(-title => 'Type_', |
si je l'appele directement
Citation : $bouton_groupe -> command(-label => 'TOTO', |
j'ai bien le message d'erreur qui s'affiche
mais si je fais :
Citation : $bouton_groupe -> command(-label => 'TOTO', |
je n'ai pas de message d'erreur
je pense que ca vient du fait que je sois dans une sous fonction (sub) mais je ne sais pas comment faire du coup
Marsh Posté le 24-09-2002 à 14:31:30
en faisant une recherche hier soir sur google, je suis tombé sur cette url :
http://www.le-berre.com/perl/perlxtd.htm
dedans, on explique qu'avec le module win32, tu peux faire des messagebox (boites de dialogue) comme sous Visual Basic, exemple de code :
Code :
|
sur ma distrib Perl (5.6.1), le module win32 est installé d'office
j'ai essayé ce source et ... ça marche plutôt super bien
c'est en tout cas moins lourdingue que de faire l'équivalent en Perl/Tk
va faire un tour sur l'url ci-dessus, t'as vraiment de bons tuyaux pour faire des msgbox et autres
Marsh Posté le 24-09-2002 à 15:01:43
Aricoh a écrit a écrit : en faisant une recherche hier soir sur google, je suis tombé sur cette url : http://www.le-berre.com/perl/perlxtd.htm dedans, on explique qu'avec le module win32, tu peux faire des messagebox (boites de dialogue) comme sous Visual Basic, exemple de code :
|
merci beaucoup,
c'est exactement ce que j'essayais de faire en tk et c'est drolement plus simple
Marsh Posté le 24-09-2002 à 15:02:36
circeedevalette a écrit a écrit : c'est exactement ce que j'essayais de faire en tk et c'est drolement plus simple |
c'est exactement ce que je me suis dit
Marsh Posté le 24-09-2002 à 15:07:35
lorill a écrit a écrit : C'est surtout nettement moins portable. |
effectivement mais si le prog est censé bosser que sur architecture win32 ... ben la portabilité, on s'en fiche un ch'tit peu
Marsh Posté le 24-09-2002 à 15:16:08
Si tu fais tout en win32, pourquoi pas, mais si tu fais tout en tk et que tu utilises win32 juste pour les messagebox, ben c'est dommage de sacrifier la portabilité pour eviter d'ecrire 2 fonctions... C'est pas parce que tu ne vises que win aujourd'hui que ca restera vrai ad vitam aeternam...
Marsh Posté le 24-09-2002 à 15:20:45
lorill a écrit a écrit : Si tu fais tout en win32, pourquoi pas, mais si tu fais tout en tk et que tu utilises win32 juste pour les messagebox, ben c'est dommage de sacrifier la portabilité pour eviter d'ecrire 2 fonctions... C'est pas parce que tu ne vises que win aujourd'hui que ca restera vrai ad vitam aeternam... |
d'accord avec toi, no problemo là-dessus, mais l'inverse est vrai : ce n'est pas parce que Perl est un langage portable à souhait qu'on doit automatiquement et obligatoirement pondre du code portable également
maintenant, si circeedevalette veut nous montrer ce que fait sa fonction exactement, on pourra pitet' trouver ce qui coince ?
Marsh Posté le 19-09-2002 à 11:42:07
salut
je suis en train de decouvrir le perl/TK
et je souhaite placer 40 boutons sur une fenetre mais comme ils ne rentrent pas tous verticalement ou horizontalement je voudrais les aligner sur deux colonnes mais je n'arrive pas a le faire...
connaissez vous le moyen d'y arriver
merci