如何在 PyGtk 中的两个类/窗口之间传递变量?

发布于 2024-10-01 04:28:15 字数 175 浏览 5 评论 0原文

我开始使用 PyGtk,但在理解窗口交互方面遇到困难。

我的非常简单的问题如下。
假设我有一个类,它只是创建一个带有文本输入字段的窗口。当单击该窗口中的“确定”按钮时,我想将输入字段中的文本传递到另一个由另一个类创建的带有 gtk 菜单的窗口,并使用文本字段的内容创建一个新条目。

我该如何实施?

I am starting out with PyGtk and am having trouble understanding the interaction of windows.

My very simple question is the following.
Suppose I have a class that simply creates a window with a text-entry field. When clicking the "ok" button in that window, I want to pass the text in the entry field to another window, created by another class, with a gtk menu and create a new entry with the content of the text field.

How do I implement this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万水千山粽是情ミ 2024-10-08 04:28:15

我们将 A 称为菜单,将 B 称为带有文本输入字段的窗口。
如果我理解正确的话,A 调用 B,并且当 B 中按下“确定”按钮时,A 需要更新其菜单。

在这种情况下,您可以在 A 中创建一个回调函数,该函数将在按下 B 的“确定”按钮时调用。当你创建 B 时,你可以传递这个回调,下面是一个例子:

class B(gtk.Window):
   def __init__(self, callback):
      gtk.Window.__init__(self)

      self.callback = callback
      # Create components:
      # self.entry, self.ok_button ...

      self.ok_button.connect("clicked", self.clicked)

   def clicked(self, button):
      self.callback(self.entry.get_text())

class A(gtk.Window):
   def create_popup(self):
      popup = B(self.popup_callback)
      popup.show()

   def popup_callback(self, text):
       # Update menu with new text
       # ...

Let's call A the Menu, and B the window with the text-entry field.
If I understood correctly A calls B and when Ok button is pressed in B, A needs to update its menu.

In this scenario you could create a callback function in A, meant to be called when B's ok button is pressed. When you create B you can pass this callback, here's an example:

class B(gtk.Window):
   def __init__(self, callback):
      gtk.Window.__init__(self)

      self.callback = callback
      # Create components:
      # self.entry, self.ok_button ...

      self.ok_button.connect("clicked", self.clicked)

   def clicked(self, button):
      self.callback(self.entry.get_text())

class A(gtk.Window):
   def create_popup(self):
      popup = B(self.popup_callback)
      popup.show()

   def popup_callback(self, text):
       # Update menu with new text
       # ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文