gpt4 book ai didi

python - 如何使用 gtk.Builder.connect_signals 仅连接一个窗口中的信号?

转载 作者:行者123 更新时间:2023-11-30 23:03:37 24 4
gpt4 key购买 nike

我正在使用 Glade 和 Python 3 开发 GUI 应用程序。我在 Glade 中设计了 UI;它由一个主应用程序窗口和一个自定义对话框组成,其中包含当用户单击指定按钮时显示的某些信息。对话框有自己的类,我们称之为InfoDialog;它的构造函数负责创建并显示对话框窗口。该类还具有与对话框中小部件发送的信号相对应的方法;例如,有一个“取消”按钮,信号(以及类中的处理程序方法)称为on_cancelButton_clicked

问题是我想在 InfoDialog 的构造函数中按实例连接此信号,并将 self 指定为用户数据,以便 InfoDialog.on_cancelButton_clicked 接收所有参数,并可以对 InfoDialog 的该实例执行操作。问题是,当我在创建主窗口后连接信号时,Gtk.builder 希望我提供其中的所有信号处理程序,不仅适用于主窗口,还适用于 InfoDialog 及其子项 - 一般用于 UI .xml 文件中定义的每个信号。

除了为每个 child 手动调用 widget.connect() 之外,我还能做些什么来解决这个问题?

最佳答案

通常的方法是将不同窗口/对话框的 UI 定义拆分为单独的 XML 文件。

如果您不想这样做,可以使用Gtk.Builder.connect_signals_full() ,并传递自定义 function仅连接您想要连接的信号。

关于python - 如何使用 gtk.Builder.connect_signals 仅连接一个窗口中的信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020410/

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