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