Forum Programmation.php get_text foireux en php gtk

Posté par  (site web personnel) .
Étiquettes : aucune
0
15
fév.
2005
Salut à toi forum
Je me suis mis un peu au php gtk, et je suis tombé sur un os. Je te donne le cadre : J'ai une fenetre consituée dans fenetre.php, qui est la fille d'une autre fenetre.
J'ai un bouton (si si), qui appelle une fonction dans callbacks.php .
Elle passe en paramètre un tableau avec la fenetre à fermer, et le contenu de différents champs de texte de la fenetre.
Ma syntaxe est la suivante :
$bouton_ok->connect("clicked","ajouter_tache",array($fenetre,"t".$champs[0]->get_text(),
$champs[1]->get_text()));
$champs est un tableau qui contient des champs de texte. Le paramètre passe bien à la fonction de callback si je donne une chaine, mais la récupération par get_text() ne marche pas. Il doit y avoir un problème de portée mais je n'arrive pas à le localiser.
Des idées ?
(j'ai l'impression que ce gnome a remplacé les symboles par de gt; )
  • # Rectificata

    Posté par  (site web personnel) . Évalué à 1.

    Désolé pour la critique sur les entités html, ça sort pas au final mais c'est troublant à la prévisualisation. Et j'ai oublié de mettre une balise code.
  • # Hum

    Posté par  . Évalué à 2.

    Je ne suis pas certain d'avoir bien compris ton problème (ou, quoi et comment). Mais si oui, peut-être trouveras-tu la réponse dans le premier commentaire de cette page : http://gtk.php.net/manual/en/gtk.gtkobject.method.connect.php(...)
    • [^] # Re: Hum

      Posté par  (site web personnel) . Évalué à 1.

      Merci pour ta réponse. Ma connexion est correcte, puisque la transmission d'une chaîne de caractères marche. Le problème se situe réellement au niveau de la fonction get_text() qui ne retourne rien. D'où le fait que je pense qu'il s'agit d'un problème de portée de variable.
      • [^] # Re: Hum

        Posté par  . Évalué à 2.

        Au fait, je suppose que tu travailles en php 4.x ?
        • [^] # Re: Hum

          Posté par  (site web personnel) . Évalué à 1.


          [madcat@madcat ~]$ rpm -q php
          php-4.3.10-3.2
          [madcat@madcat ~]$ rpm -q php-gtk
          php-gtk-1-1
          [madcat@madcat ~]$ uname -r
          2.6.10-1.760_FC3
          • [^] # Re: Hum

            Posté par  . Évalué à 2.

            Ok. Dans ton cas, je pense que ça a son importance.

            Je vois que tu travailles avec tes champs texte organisés en tableau. un problème typique de php dans sa version 4 est que l'affectation des éléments se fait par défaut par copie, ce qui dans certains cas peut avoir des répercussions inattendues sur la suite du script, en particulier avec les tableaux d'objets.

            Il est possible que la méthode get_text() que tu appelles soit en fait appelée depuis une copie de l'objet que tu as voulu stocker dans le tableau. Si je suppose juste, ton code dans l'ordre de son éxécution doit ressembler à ceci :

            1/ création de l'objet champ texte (stocké dans une variable notée par exemple $a)
            2/ copie de l'objet créé dans le tableau pour référence ultérieure ( $champs[0]=$a;)
            3/ diverses opérations d'initialisation du champ, en utilisant l'objet de la variable $a
            4/ Le bout de code qui te pose problème, utilisant $champs[0].

            Est-ce bien cela ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.