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 Adrien BUSTANY (site web personnel) . Évalué à 1.
# Hum
Posté par Cali_Mero . Évalué à 2.
[^] # Re: Hum
Posté par Adrien BUSTANY (site web personnel) . Évalué à 1.
[^] # Re: Hum
Posté par Cali_Mero . Évalué à 2.
[^] # Re: Hum
Posté par Adrien BUSTANY (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 Cali_Mero . Évalué à 2.
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.