2011-09-19 43 views
1

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

谢谢。

回答

2

使用标签应该工作,但它是非常脆弱;翻译可能会打破它,而你的正面回应按钮并不总是被称为“OK”。您应该考虑使用响应ID来标识适当的按钮。例如,一个典型的OK按钮可能使用创建:

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

然后你可以检索你的OK按钮以后使用get_widget_for_response通话,这似乎完美的设计,做的正是你想做的事:

dialog.get_widget_for_response(gtk.RESPONSE_OK) 

我建议,这可能是你应该做到这一点;它与set_alternative_button_order() API的工作方式类似,这表明它的用途。

1

必须是类似的东西:

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

我想,child.get_label()将完成任务。如果child.get_label()=='gtk-ok': child.set_sensitive(False) – Yajushi

+0

确实,谢谢。 – Louis