在对话窗口中使用 Glade,如何为按钮添加响应

Posted

技术标签:

【中文标题】在对话窗口中使用 Glade,如何为按钮添加响应【英文标题】:With Glade in a dialog window, how do you add response for buttons 【发布时间】:2016-05-02 14:31:17 【问题描述】:

如何将对话窗口的按钮(例如 GtkDialog)与 Glade 的响应 Gtk::ResponseType 值联系起来?

我知道如何以编程方式进行,但我不知道如何使用 Glade。

简而言之,我必须使用 GtkDialog 创建 ui 文件,并在操作区域中创建两个按钮,例如 ID 为 button_okbutton_cancel。然后我编辑文件并添加这些行:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
  <requires lib="gtk+" version="3.20"/>
  <object class="GtkDialog" id="dialog1">
  <!-- the objects added by Glade -->

  <!-- What I need to add -->
  <action-widgets>
      <action-widget response="cancel">button_cancel</action-widget>
      <action-widget response="ok" default="true">button_ok</action-widget>
  </action-widgets>
  <!-- What I need to add -->

  </object>
</interface>

有没有办法通过 Glade 的界面来做到这一点?

【问题讨论】:

【参考方案1】:

响应 ID 是按钮属性下的第二个选项。

【讨论】:

即使有问题仍然有效(在我接受您的回答之前):为什么在 GtkDialog 文档中他们使用 response="cancel" 而您只能在 Glade 中使用数字? 看起来如果您使用的是 GTK 3.14+,您可以。 ***.com/questions/18297382/… 是的,但是看起来那些昵称不能通过 Glade 设置/使用,它只将响应 ID 管理为整数。 你好@cedlemo,我意识到我真的很喜欢一种机制,类似于我在林间空地给我的小部件起的任意名称,并且我以后可以使用 gtk 构建器访问,我可以给任意对话响应的名称并在我的代码中测试这些名称,而不是我当前使用的那些晦涩的整数。自 2016 年以来,您是否找到了这样做的方法?谢谢。

以上是关于在对话窗口中使用 Glade,如何为按钮添加响应的主要内容,如果未能解决你的问题,请参考以下文章

MFC SDI中 如何为动态创建的按钮添加消息处理函数

MFC CTabCtrl如何为选项卡添加关闭按钮

如何为 iOS 应用动态设计或创建带有动态 ui 控件的视图

Tkinter小技巧:如何为窗口右上角的‘x’添加一个自定义的响应函数

WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?

如何为 Android Holo Theme 样式的对话框按钮