gpt4 book ai didi

python - GTK 3 - 添加项目后展开的弹出菜单

转载 作者:太空狗 更新时间:2023-10-30 00:15:07 25 4
gpt4 key购买 nike

我正在使用 GTK 3.4 和 python(使用 GObject 自省(introspection))。

我有使用 Gtk.UIManager 构建的弹出菜单,当菜单被实例化时,一些菜单项不活动/不可见。后来它们被激活并在菜单中可见。

但是有一个小问题 - 第一个弹出菜单的大小(高度)似乎保持不变 - 我现在必须滚动浏览菜单项 - 在菜单区域的顶部和底部有 ^ v 箭头显示项目不适合区域,可以上下滚动。但是,我非常希望弹出窗口的大小在显示时发生变化。

弹出窗口在应用程序上实例化一次。像这样的对象:

menu_manager=Gtk.UIManager()
menu_manager.insert_action_group(self.core_actions)
menu_manager.insert_action_group(self.power_type_actions)
menu_manager.add_ui_from_file(os.path.join(_curr_dir, 'ui', 'menus.xml'))
self.menu_manager=menu_manager
self.popup=menu_manager.get_widget('/popup')

以及带有此信号处理程序的托盘图标上显示的:

def show_menu(self, tray_icon, button, activate_time, user_data=None):  
def pos(menu, icon):
p= Gtk.StatusIcon.position_menu(menu, icon)
return p
log.debug( 'Menu button=%s, time=%s', button, activate_time)
self.popup.popup(None, None, pos, tray_icon, button, activate_time )

有什么方法可以强制弹出菜单调整大小以显示其所有项目而无需滚动?

最佳答案

根据您的要求,我假设您希望菜单足够大以避免滚动。根据 GTK+ 3 文档,GtkMenu 是 GtkWidget 的子类。因此,从逻辑上讲,您应该能够请求菜单的大小。尝试各种尺寸,直到一个足够大。该文档适用于 C,但它仍应适用于 Python。 https://developer.gnome.org/gtk3/stable/GtkWidget.html https://developer.gnome.org/gtk3/3.1/GtkMenu.html

关于python - GTK 3 - 添加项目后展开的弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com