微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们如何处理 pygobject 中处理程序内部的事件?

如何解决我们如何处理 pygobject 中处理程序内部的事件?

我有一个空地文件,它从输入框中获取输入,并在单击按钮时将其显示标签

<?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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。