问题描述
我有一个空地文件,它从输入框中获取输入,并在单击按钮时将其显示为标签。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="windows1">
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkFixed">
<property name="visible">True</property>
<property name="can_focus">False</property>
<signal name="destroy" handler="gtk_main_quit" swapped="no"/>
<child>
<object class="gtkbutton" id="button1">
<property name="label" translatable="yes">Submit</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_button1_clicked" swapped="no"/>
</object>
<packing>
<property name="x">182</property>
<property name="y">146</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="Box1">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
<packing>
<property name="x">68</property>
<property name="y">45</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="x">321</property>
<property name="y">44</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
这是我的pygobject代码
import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gtk
class Handler:
def gtk_main_quit(self,*args):
Gtk.main_quit()
def on_button1_clicked(self,button):
print("Hello World!")
## Take text value from Entry Box and show it in Label
builder = Gtk.Builder()
builder.add_from_file("example.glade")
builder.connect_signals(Handler())
window = builder.get_object("windows1")
window.show_all()
Gtk.main()
当前在按钮上单击它会打印 Hello World!
。现在我们如何告诉 on_button1_clicked
方法从 ID 为 Box1
的输入框中获取输入并将其显示在 ID 为 label1
的标签中?
解决方法
如果有人感兴趣,这就是我解决问题的方法
import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gtk
class Handler:
def gtk_main_quit(self,*args):
Gtk.main_quit()
def on_button1_clicked(self,button):
text = box.get_text()
label.set_text(text)
## Take text value for Entrybox and show it in label
builder = Gtk.Builder()
builder.add_from_file("example.glade")
builder.connect_signals(Handler())
window = builder.get_object("windows1")
label = builder.get_object("label1")
box = builder.get_object("box1")
window.show_all()
Gtk.main()