Gtk 在Dialog.action\u区域中标识OK按钮

Gtk 在Dialog.action\u区域中标识OK按钮,gtk,widget,pygtk,Gtk,Widget,Pygtk,我创建了一个对话框,在某个时刻我需要切换OK按钮的敏感标志(gtk.STOCK_OK)。我成功访问了action_区域和其中的按钮,但如何识别OK按钮? 另外,是否有更简单的方法来启用/禁用OK按钮 谢谢。一定是这样的: for child in action_area.get_children(): label = child.get_children()[0] if label.get_label() == "OK": child.set_sensitive(

我创建了一个对话框,在某个时刻我需要切换OK按钮的敏感标志(gtk.STOCK_OK)。我成功访问了action_区域和其中的按钮,但如何识别OK按钮? 另外,是否有更简单的方法来启用/禁用OK按钮


谢谢。

一定是这样的:

for child in action_area.get_children():
    label = child.get_children()[0]
    if label.get_label() == "OK":
        child.set_sensitive(False)

使用标签应该可以,但它非常脆弱;翻译可能会破坏它,你的积极回应按钮也不会总是被称为“OK”。应该考虑使用响应ID来识别适当的按钮。例如,典型的“确定”按钮可以使用以下方法创建:

dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
然后,您可以稍后使用
get\u widget\u for\u response
调用来检索OK按钮,该调用似乎设计得非常完美,完全可以执行您想要执行的操作:

dialog.get_widget_for_response(gtk.RESPONSE_OK)
我认为这可能是你应该做的事情;这类似于
set\u alternative\u button\u order()
API的工作方式,这表明它是预期的。

我认为,child.get\u label()将完成这项任务。如果child.get_label()=“gtk ok”:child.set_敏感(False)