2012-11-23 17 views
6

私は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) 

はせずにその項目のすべてを表示するようにサイズを変更するために、ポップアップでメニューを強制的にどのようにどのような方法があります。このようなオブジェクトスクロールする必要がありますか?

答えて

2

ご要望により、スクロールしないようにメニューを大きくしたいと考えています。 GTK + 3のドキュメントによると、GtkMenuはGtkWidgetのサブクラスです。論理的には、メニューのサイズを要求できるはずです。 1つが十分に大きくなるまでさまざまなサイズを試してください。そのドキュメントはC用ですが、Pythonにはまだ適用されます。 https://developer.gnome.org/gtk3/stable/GtkWidget.html https://developer.gnome.org/gtk3/3.1/GtkMenu.html

関連する問題