IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

[Tk] Erreur de mise à jour de l'état d'un composant à partir d'une fonction


Sujet :

Interfaces Graphiques Perl

  1. #1
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut [Tk] Erreur de mise à jour de l'état d'un composant à partir d'une fonction
    Salut,

    Voici mon problème : J'ai une interface graphique dans un fichier que je vais appeler par exemple mail.pl et j'ai un autre fichier contenant diverses fonctions qui seront appelées par cette dite interface.

    Jusque là tout va bien (l'appel des fonctions etc.), le seul souci c'est que j'ai une barre de progression ou une champ texte que je voudrais remplir au cours du traitement des fonctions.

    Avant j'utilisais pour la barre de progression la fonction update et ça fonctionnait comme c'était dans le même fichier, mais maintenant ça me met une erreur et c'est la même chose pour tous les composants graphiques
    Tk::Error: Can't call method "insert" on an undefined value at index.pl
    Sauriez-vous pourquoi ??

    J'ai une autre question : Est-ce possible de faire comme en Qt ? Lorsqu'une variable a changé on émet un signal qui appel une fonction qui mettra à jour l'interface.


  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Kerod Voir le message
    Sauriez-vous pourquoi ??
    Apparemment tu essaies d'appeler une méthode Tk sur un scalaire vide (undef), ce qui suggère que tu utilises une variable initialisée dans un module et pas dans l'autre et que tu n'utilises pas le pragma strict par ailleurs.

    Citation Envoyé par Kerod Voir le message
    J'ai une autre question : Est-ce possible de faire comme en Qt ? Lorsqu'une variable a changé on émet un signal qui appel une fonction qui mettra à jour l'interface.
    La plupart du temps il est possible de directement lier une variable au widget correspondant via une des options de création/configuration du widget, si ce n'est pas le cas, tu peux utiliser Tie::Watch .

    --
    Jedaï

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Apparemment tu essaies d'appeler une méthode Tk sur un scalaire vide (undef), ce qui suggère que tu utilises une variable initialisée dans un module et pas dans l'autre et que tu n'utilises pas le pragma strict par ailleurs.
    Ben le scalaire est initialisé mais dans la partie Tk. Et avant l'appel de la fonction dans l'autre fichier.


    La plupart du temps il est possible de directement lier une variable au widget correspondant via une des options de création/configuration du widget, si ce n'est pas le cas, tu peux utiliser Tie::Watch .
    C'est déjà fait pour la progressBar mais il faut obligatoirement faire un update pour que ce soit visible. Pour un champ texte il faut faire un insert mais ça marche pas non plus. Je vais essayer ce Watch pour voir ce que ça donne.


  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    J'ai testé le Tie:Watch mais visiblement j'ai certainement pas compris comment le faire fonctionner vu que ça n'a aucun effet.

    Finalement j'ai décidé de passer mon widget en paramètre dans l'appel de la fonction.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mise à jour de mon état
    Par pat1545 dans le forum IHM
    Réponses: 2
    Dernier message: 28/08/2006, 20h30
  2. Erreur sur mise à jour
    Par Smint dans le forum Access
    Réponses: 10
    Dernier message: 01/07/2006, 15h29
  3. [Conception] erreur de mise à jour UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2006, 12h56
  4. Mise à jour dans un état
    Par Polo_973 dans le forum Access
    Réponses: 2
    Dernier message: 15/03/2006, 21h05
  5. Erreur 3251 : mise à jour non prise en charge
    Par gletare dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo