5

有什么方法可以在 a 中使用预定义的响应(例如GTK_RESPONSE_OKGtkDialog,而无需对 ID 进行硬编码?Glade 默认在那里生成带有“0”的 XML,并给我一个数字条目。虽然我想我可以输入 -5,但这似乎违背了拥有一个常数的意义。

Glade XML 如下所示:

<action-widgets>
  <action-widget response="0">cancel-button</action-widget>
  <action-widget response="0">connect-button</action-widget>
</action-widgets>

甚至文档中的示例

<action-widgets>
  <action-widget response="3">button_ok</action-widget>
  <action-widget response="-5">button_cancel</action-widget>
</action-widgets>

(这有点搞笑,因为他们使用 -5 ( GTK_RESPONSE_OK) 表示“ button_cancel”……)

4

1 回答 1

1

从 GTK 3.12 开始,您可以使用 nck-names 作为响应。

commit baa471ec130c360a5c4ae314769bc7b858814219
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Mon Oct 28 11:19:43 2013 -0400

  gtkdialog: Allow specifying response IDs by nick in <action-widgets>

  This makes it a lot more convenient for developers, as they don't
  have to look up the numeric value of response IDs.

所以你现在可以做

<action-widgets>
  <action-widget response="ok">button_ok</action-widget>
  <action-widget response="cancel">button_cancel</action-widget>
</action-widgets>
于 2014-05-04T15:20:19.993 回答