Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Interfaces Graphiques
Interfaces Graphiques Forum d'entraide pour les interfaces graphiques en Perl (TK, GTK, Tk-Zinc, 2D et 3D avec OpenGPL, ....). Avant de poster, veuillez consulter la FAQ Perl/Tk , les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/04/2012, 11h28   #1
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Par défaut Problème de version pour le widget ROText

Bonjour,

j'ai créé il y a quelques temps un programme Perl/Tk sur un PC avec la version 5.8.8 de Perl.
J'ai essayé de lancer ce programme sur un autre PC avec la version 5.10.0 de Perl, et j'ai eu l'erreur suivante:

Code :
Tk::Error : no event type or button # or keysym at usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/Tk/Widget.pm line 1105, <PREF> line 3
Cette erreur apparaît uniquement pour les widgets de Type Text ou ROText. Je voulais donc savoir s'il y avait eu des modifications de ce widget entre la version 5.8.8 et 5.10.0 (si la version de Tk correspond à celle de Perl?), et de manière générale comment connaître les modifications entre les différentes versions de Tk.

Merci d'avance!
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 12h14   #2
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
C'est étrange car ayant bossé sous pratiquement toutes les versions de Perl et Tk, je n'ai jamais eu ce souci.

Peux-tu nous montrer ton code ?
Quelle version de Tk utilises-tu sur tes deux PC ?
Code :
perl -MTk -e "print $Tk::VERSION"
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 12h57   #3
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Merci pour ta réactivité!
Alors sur le PC que j'ai utilisé pour développer, j'ai la version 804.027.
Sur le PC ou l'interface ne fonctionne pas, j'ai la version 804.028.
Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
use Tk::ROText;
 
my $main_window = MainWindow->new;
$main_window->configure(-title=>"Exemple",-width=>200,-heigh=>200);
$main_window->ROText()->place(-x=>100,-y=>150);
$main_window->Button(-text=>"Parcourir...",-command=>sub{print "appui bouton\n"})->place(-x=>100,-y=>100);
 
MainLoop;
Si je mets le widget ROText en commentaire, mon interface s'affiche correctement. Dans mon code complet ou j'utilise un certain nombre de widgets différents, Text et ROText sont les seuls à poser problème.
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 13h29   #4
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
ça fonctionne chez moi sous Tk 804.028 ou 804.029.

Tu es sous quel OS ?
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 13h56   #5
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Sur le premier PC je suis sur Linux Mandriva 2007.0 (kernel 2.6.17.5) et sur le deuxième (celui ou ça ne marche pas) je suis sur Mandriva 2009.1 (kernel 2.6.29.6).
Tu penses que ça peut venir de la version de Mandriva?
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 14h14   #6
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
Bah je ne sais pas comment Perl et surtout le module Tk est installé dessus. Surement une mauvaise installation.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 14h19   #7
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Très bien merci pour ton aide, ce n'est pas moi qui m'occupe de l'installation des programmes (ce sont des PC de mon boulot), je vais voir ça avec la personne qui a les droits.
Je vous redis si je trouve la cause du problème!
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 16h14   #8
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
J'ai été voir dans le fichier qui me génère l'erreur, Widget.pm: l'erreur provient de la fonction MouseWheelBind (donc la gestion des évènements liés à la molette de la souris), et plus particulièrement de la ligne suivante:

Code :
1
2
3
 
 $mw->Tk::bind($class, '<MouseWheel>',
	       [ sub { $_[0]->yview('scroll',-($_[1]/120)*3,'units') }, Tk::Ev("D")]);
J'ai mis cette ligne en commentaire, et mon programme a marché. Apparement le bug est lié à la version de Mandriva (2009).
Je ne me sers pas des évènements "MouseWheel", donc la mise en commentaire est une solution suffisante pour moi; je ne sais pas comment corriger le problème autrement.
Je mets donc le sujet comme résolu!
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2012, 08h44   #9
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
C'est très très très mal de toucher aux sources des modules de la sorte . Comment sais-tu que c'est lié à la version 2009 de Mandriva ?
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2012, 09h41   #10
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Oui désolée
Mais bon même la responsable informatique m'a dit que c'était la seule solution qu'elle avait trouvé jusqu'à maintenant (je ne le savait pas mais elle avait déjà étudié le problème)... et moi j'ai besoin que ça marche!
Après c'est moi qui pense que ça vient de la version 2009 parce que c'est l'explication qui me vient à l'esprit, mais bon je n'en sais rien ^^

En tout cas si quelqu'un a eu le problème et comprend d'où ça vient, je suis preneuse de l'explication!
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2012, 10h00   #11
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
Une bonne idée serait de désinstaller le module Tk puis de le réinstaller. Peux-tu le faire ?
Charche dans la FAQ, j'y ai mis un programme pour désinstaller le module sous Linux, puis tu le réinstalle.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 11h17   #12
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Malheureusement non je ne peux pas le faire (pas les droits).
D'après la responsable informatique il existe un patch correctif, mais qui finalement ne fonctionne pas; je n'ai pas beaucoup d'informations là-dessus...
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2012, 11h25   #13
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 815
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 815
Points : 31 516
Points : 31 516
Il faut lui dire de faire en root (pas en sudo) la commande suivante :
Code :
1
2
cpan
force install Tk
Ainsi, ça installera la dernière version de Tk. C'est la meilleure solution.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2012, 13h01   #14
mokochan
Membre habitué
 
Femme
Ingénieur études et réalisations
Inscription : mai 2010
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 23
Localisation : France

Informations professionnelles :
Activité : Ingénieur études et réalisations
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2010
Messages : 102
Points : 104
Points : 104
Très bien je transmettrai le message. Merci!
mokochan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h14.


 
 
 
 
Partenaires

Hébergement Web