gpt4 book ai didi

Python + Glade + PyGObject。如何一次获取两个文本字段的值?

转载 作者:行者123 更新时间:2023-11-28 17:45:30 26 4
gpt4 key购买 nike

我对使用 Glade 和 Python 3 构建 UI 有点迷茫。我制作了一个 GtkWindows,它有一个 GtkBoxGtkBox 有一个 GtkButton 和两个 GtkPaned 对象。每个 Pane 都有一个 GtkEntry 对象。最后,我希望它成为一个登录表单:用户点击“连接”按钮,两个 GtkEntry 对象的文本值被处理程序拾取并发送到服务器。我的代码的相关部分如下所示:

class Handler:
def on_MainWindow_destroy(self, *args):
Gtk.main_quit(*args)

def on_LoginButton_clicked(self, *args):
print(*args)
#do other stuff


if __name__ == '__main__':
builder = Gtk.Builder()
builder.add_from_file('myui.glade')
builder.connect_signals(Handler())

window = builder.get_object("MainWindow")
window.show_all()

Gtk.main()

(稍微偏离我的问题的原始主题:在 Glade 中命名 GObjects 的正确方法是什么?CamelCase?小写_下划线?)

我希望 LoginButton 在单击时对两个字段的文本执行某些操作。但是,Glade 只给您提供将单个对象传递给处理程序的选项。我可以将 on_LoginButton_clicked 方法附加到 LoginButton 两次,并在第一次调用时将用户名字段传递给它,在第二次调用时将密码字段传递给它,但这看起来非常困惑.执行此操作的正确方法是什么?

最佳答案

您需要使用 GtkBuilder 的 get_object() 来引用类中的两个对象。然后,在按钮的回调中,只需使用 self.myfield1.get_text() 左右获取两个文本。检查此模板以了解如何构建 PyGObject 应用程序:

How can a program that uses GUI be constructed?

希望对您有所帮助。

编辑:关于命名方案,我会使用在使用 Glade 文件的语言上使用的任何命名方案。在 PyGObject 中编程时,我将 Glade 文件中的对象命名为与 Python 变量相同的名称,因此我可以这样做:

[...]
go = self.builder.get_object
self.window = go('window')
self.my_foobar = go('my_foobar')
[...]

关于Python + Glade + PyGObject。如何一次获取两个文本字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com