我正在使用GtkMenuToolButton,它有一个按钮和一个菜单。当您单击箭头时,菜单将打开。我也希望按钮打开相同的菜单。只需发出" show-menu"在"点击"回调没有用。请帮助如何使这项工作。
答案 0 :(得分:1)
创建菜单时,将其引用保存为self.tool_button_menu
或其他内容;然后在clicked
回调中,调用
self.tool_button_menu.popup(None, None, None, None, 0, Gtk.get_current_event_time())
前两个None
是父菜单和父菜单项(不适用)。后两个None
是定位回调函数(一分钟内更多)和传递给它的数据。 0
是鼠标按钮,如果菜单是通过按下鼠标按钮启动的(但你应该传递0,因为我认为在你的情况下它是鼠标按钮释放或按键按下。)最后一个参数是时间戳给菜单弹出事件。
现在定位功能。它需要两个参数并返回三个:
def positioning_function(menu, data=None):
# ...magic...
return x, y, push_in
如果您希望重新定位菜单以使其始终适合屏幕,则 push_in
应为True
。似乎是个好主意。通过查看工具按钮的x
,您可以获得y
和get_allocation()
的良好价值;阅读该对象的x
,y
,width
和height
属性,并计算放置菜单的好地方。
答案 1 :(得分:1)
我目前最终这样做了:
作为一个整体,它做我想要的=)