在Dialog.action_area中识别OK按钮

时间:2011-09-19 11:39:18

标签: gtk widget pygtk

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

感谢。

2 个答案:

答案 0 :(得分:2)

使用标签应该有用,但它非常脆弱;翻译可能会破坏它,无论如何,你的肯定响应按钮并不总是被称为“OK”。您应该考虑使用响应ID来识别相应的按钮。例如,可以使用以下命令创建典型的“确定”按钮:

dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)

然后,您可以稍后使用get_widget_for_response调用来检索确定按钮,该调用似乎完全符合您的要求:

dialog.get_widget_for_response(gtk.RESPONSE_OK)

我建议这可能是 应该这样做的方式;它类似于set_alternative_button_order() API的工作方式,这表明它就是预期的。

答案 1 :(得分:1)

必须是这样的:

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