我创建了一个对话框,并且在某些时候我需要切换OK按钮的敏感标志(gtk.STOCK_OK)。我成功访问了action_area和其中的按钮,但是如何识别OK按钮? 另外,有没有更简单的方法来启用/禁用确定按钮?确定Dialog.action_area中的OK按钮
谢谢。
我创建了一个对话框,并且在某些时候我需要切换OK按钮的敏感标志(gtk.STOCK_OK)。我成功访问了action_area和其中的按钮,但是如何识别OK按钮? 另外,有没有更简单的方法来启用/禁用确定按钮?确定Dialog.action_area中的OK按钮
谢谢。
使用标签应该工作,但它是非常脆弱;翻译可能会打破它,而你的正面回应按钮并不总是被称为“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的工作方式类似,这表明它的用途。
必须是类似的东西:
for child in action_area.get_children():
label = child.get_children()[0]
if label.get_label() == "OK":
child.set_sensitive(False)
我想,child.get_label()将完成任务。如果child.get_label()=='gtk-ok': child.set_sensitive(False) – Yajushi
确实,谢谢。 – Louis