私はGTK 3.4をPythonで使っています(GObjectイントロスペクションあり)。GTK 3 - 項目を追加した後に展開するポップアップメニュー
Gtk.UIManagerでポップアップメニューをビルドしていますが、メニューがインスタンス化されたときにアクティブ/非表示になるメニューがあります。その後、それらはアクティブ化され、メニューで表示されます。
しかし、1つの小さな問題があります - サイズ1のポップアップメニュー(高さ)は同じであると思われます - メニュー項目の上下にメニュー項目をスクロールする必要があります。その項目は領域に収まらず、上下にスクロールすることができます。しかし、ポップアップのサイズが表示されているときに変更するだけの方がはるかに好きです。
ポップアップはアプリで一度インスタンス化されます。
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)
はせずにその項目のすべてを表示するようにサイズを変更するために、ポップアップでメニューを強制的にどのようにどのような方法があります。このようなオブジェクトスクロールする必要がありますか?