Seite 1 von 1

PHP-GTK Widget ansprechen!

Verfasst: Mittwoch 6. Mai 2009, 10:34
von Nyrk
Eigentlich ist das hier ja ein Python Forum, da die Vorgehensweise aber ähnlich der von Python ist hier mal mein Problem.


Hallo,


ich habe momentan ein kleines Problem mit dem Ansprechen von Widgets die ich als Gladefile lade.

Hier mal ein bischen Code:

Code: Alles auswählen

<?php
$glade = new GladeXML(dirname(__FILE__) . '/projekt1.glade');
$tbox = $glade->get_Widget("entry1");  //weiß nicht ob das richtig ist.
$glade->signal_autoconnect();


function on_button1_clicked() {
$datei = file("http://www.google.de");
$tbox-set_text($datei); //hier kommt der Fehler.
}
 

Gtk::main();
?>
Fehlermeldung:
Call to undefined function set_text()

Verfasst: Mittwoch 6. Mai 2009, 10:43
von Barabbas
kenne mich mit dieser PHP Variante nicht aus, aber muss es nicht heißen "$tbox->set_text()" statt "$tbox-set_text()"?
Außerdem gibt file() in PHP ein Array zurück. set_text() erwartet aber einen string. Dazu könntest du readfile() benutzen.

Grüße,

brb

P.S. Wozu braucht man eigentlich diese PHP Variante? Ich fand das schon immer etwas... seltsam?

Verfasst: Mittwoch 6. Mai 2009, 11:03
von Nyrk
Stimmt, da war ein kleiner Fehler drin.

->

jetzige Fehlermeldung:
Call to a member function set_text() on a non-object
Auch wenn ich

Code: Alles auswählen

$tbox->set_text('string');
schreibe.

Verfasst: Mittwoch 6. Mai 2009, 11:12
von Barabbas
Du hast vergessen meine Frage zu beantworten ;)
Call to a member function set_text() on a non-object
Ist doch selbsterklärend? $tbox ist None - entweder enthält dein Gladefile keine Objekt namens "entry1" oder etwas anderes stimmt mit deiner Glade-Routine nicht.

Laut PHP GTK Dokumentation heißt die gesuchte Glade-Methode "get_widget" und nicht "get_Widget".
Bitte achte etwas auf derartige Rechtschreibfehler, das ist wirklich etwas, für das man die Community nicht unbedingt bemühen muss ;)

brb

Verfasst: Mittwoch 6. Mai 2009, 11:21
von Nyrk
Meinst du wozu man PHP-GTK braucht?

Eigentlich aus dem gleichen Grund wie PyGTK :-)

Ich glaube auch das irgendwas mit meinem Aufruf nicht stimmt...
An der Groß-Kleinschreibung scheints abe rnicht zu liegen, hab ich gerade getestet.

Verfasst: Mittwoch 6. Mai 2009, 11:25
von Barabbas
Nyrk hat geschrieben:Meinst du wozu man PHP-GTK braucht?

Eigentlich aus dem gleichen Grund wie PyGTK :-)
Naja, aber für PHP musst du einen entsprechenden Server rennen haben, was die Weitergabe verkompliziert. Und für klassische PHP Einsatzzwecke taugt es eh nichts, da man auf Remote-Server in der Regel keinen visuellen Zugriff hat?

//edit:
Was gibt denn "print $glade;" aus?

Verfasst: Mittwoch 6. Mai 2009, 11:28
von TDO
also wenn PHP-GTK die gesetze von PHP nicht ausser kraft setzt is doch klar warum $tbox ein non object ist... es ist im scope der function ja nicht definiert...

Verfasst: Mittwoch 6. Mai 2009, 20:19
von Nyrk
Barabbas hat geschrieben:
Nyrk hat geschrieben:Meinst du wozu man PHP-GTK braucht?

Eigentlich aus dem gleichen Grund wie PyGTK :-)
Naja, aber für PHP musst du einen entsprechenden Server rennen haben, was die Weitergabe verkompliziert. Und für klassische PHP Einsatzzwecke taugt es eh nichts, da man auf Remote-Server in der Regel keinen visuellen Zugriff hat?

//edit:
Was gibt denn "print $glade;" aus?
Nein, man muss keinen Server laufen lassen, es reicht php-client zu installieren...eigentlich genau wie python, nur nicht ganz so mächtig.

Also auf jedem Unix System nutzbar.


@TDO: Danke, das war der knackpunkt...Wieso hab ich da nicht selber dran gedacht!

Verfasst: Donnerstag 7. Mai 2009, 22:59
von Darii
Nyrk hat geschrieben:Meinst du wozu man PHP-GTK braucht?

Eigentlich aus dem gleichen Grund wie PyGTK :-)
Nee, PHP ist eine bessere Templatesprache die für sowas eigentlich nicht konzipiert ist. ;) Ich sehe PHP-GTK eher als Proof-Of-Concept, man kann es benutzt weil es geht, aber man will es nicht.

Verfasst: Freitag 8. Mai 2009, 09:02
von lunar
Darii hat geschrieben:
Nyrk hat geschrieben:Meinst du wozu man PHP-GTK braucht?

Eigentlich aus dem gleichen Grund wie PyGTK :-)
Nee, PHP ist eine bessere Templatesprache die für sowas eigentlich nicht konzipiert ist. ;)
Man kann in Mako und Jinja bessere Programme schreiben als in PHP, von einer "besseren" Templatesprache kann also kaum die Rede sein ;)

Ansonsten stimme ich dir natürlich zu.