nachdem ich mich etwas in Python eingearbeitet habe, mache ich mich an GTK/GLADE zu schaffen ... und stoße gleich auf ein Problem mit einem Eingabefeld (Entry) das ich nicht auslesen kann.
Aussehen: Kleines Fenster mit einem Button und einem Eingabefeld.
Erstellung des Fensters nebst Widgets funktioniert prima. Auch den Klick auf den Button kann ich auswerten. Jedoch das Auslesen des Textfeldes (beim Klick auf den Button) bekomme ich nicht hin.
Einige meiner erbärmlichen Versuche stehen unter "def on_button1_clicked ..." und sind auskommentiert.
Was mache ich falsch? Was muss ich ergänzen? Herzlichen Dank für Eure (anfägerverständliche) Hilfe.
Code: Alles auswählen
#****PYTHON Code****
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class Handler:
def on_window_destroy(self, *args):
Gtk.main_quit()
def on_button1_clicked(self, *args):
print("Button gedrückt") [b]#funktioniert[/b]
#print (GtkEntry.textbox1.get_text()) [b] #funktioniert nicht[/b]
#print (builder.textbox1.get_text()) [b]#funktioniert nicht[/b]
#print(self.get_object('textbox1').get_text()) [b]#funktioniert auch nicht[/b]
class Example:
def __init__(self):
self.builder = Gtk.Builder()
self.builder.add_from_file("/home/pi/glade/2-4-1-a.glade")
self.builder.connect_signals(Handler())
window = self.builder.get_object("window")
window.show_all()
def main(self):
Gtk.main()
x = Example()
x.main()
#**** GLADE/GTK-Code ****
?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkApplicationWindow" id="window">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Titel</property>
<property name="window_position">center-always</property>
<property name="gravity">center</property>
<signal name="destroy" handler="on_window_destroy" swapped="no"/>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_button-1_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="textbox1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="text" translatable="yes">Hier Text eingeben</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</interface>