2012-11-23 5 views
6

Hinzufügen Ich bin mit GTK 3.4 mit Python (mit GObject Selbstbeobachtung).GTK 3 - Popup-Menü zu öffnen, nachdem Elemente es

Ich habe Popup-Menü mit Gtk.UIManager bauen, sind einige Menüpunkte nicht aktiv/sichtbar, wenn das Menü instanziiert wird. Später werden sie aktiviert und sie wurden im Menü sichtbar.

Allerdings gibt es eine kleines Problem - die Größe ein Popup-Menü (Höhe) scheint gleich zu bleiben - und ich habe jetzt aber Menüpunkte blättern - oben und unten den Menübereiches gibt es^v Pfeile zeigen Diese Elemente passen nicht in den Bereich und es ist möglich, nach oben und unten zu blättern. Allerdings würde ich sehr viel lieber, wenn Größe des Pop-up nur ändert, wenn es angezeigt wird.

Popup instanziiert einmal auf App. Objekt wie folgt:

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') 

und das auf Tray-Icon mit diesem Signal-Handler gezeigt:

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) 

Gibt es eine Möglichkeit, wie zu zwingen Menü auf Pop-up, um die Größe zu zeigen, alle seine Produkte ohne muss scrollen?

Antwort

2

Durch Ihre Anfrage, ich nehme an, Sie das Menü wollen groß genug sein, Scrollen zu vermeiden. Gemäß der GTK + 3-Dokumentation ist GtkMenu eine Unterklasse von GtkWidget. Daher sollten Sie logischerweise die Größe des Menüs anfordern können. Probieren Sie verschiedene Größen aus, bis eine groß genug ist. Diese Dokumentation ist für C gedacht, sollte aber für Python gelten. https://developer.gnome.org/gtk3/stable/GtkWidget.html https://developer.gnome.org/gtk3/3.1/GtkMenu.html

Verwandte Themen