LINUX.ORG.RU

[pygobject]Gtk.Builder.connect_signals


0

1

Есть такой код:

#!/usr/env python3

from gi.repository import Gtk

class Handlers():
    def add_items_to_treestore_for_left_treeview(self, treestore):
        pass
    def on_status_icon_activated(self):
        pass
    def on_status_icon_popup_menu(self, status_icon, button, activate_time, user_data):
          user_data['status_icon_context_menu'].menu_popup(Null, Null, user_data['status_icon'].position_menu, user_data['status_icon'], button, activate_time)

class Main():
    def __init__(self):
        user_data = {}
        gtk_builder = Gtk.Builder()
        gtk_builder.add_from_file("/home/netcat/hardinform/share/hardinform-gui.ui")
        user_data['main_window'] = main_window = gtk_builder.get_object("main_window")
        user_data['categories_tree_curr_text'] = gtk_builder.get_object('curr_categories_tree_text')
        user_data['information_tree_store'] = gtk_builder.get_object('information_tree_store')
        user_data['categories_tree_store'] = gtk_builder.get_object('categories_tree_store')
        user_data['status_icon'] = gtk_builder.get_object('hardinform_status_icon')
        user_data['status_icon_context_menu'] = gtk_builder.get_object('status_icon_context_menu')
        gtk_builder.connect_signals(Handlers())
        main_window.show_all()
        Gtk.main()


Main()
Как передать user_data хандлерам?

★★
Ответ на: комментарий от netcat

А, у тебя gi. Сразу не заметил. Тогда да, пичалька. Но не сильная, так как user_data предполагается статическим (привязывается во время коннекта), то его можно хранить в том же Handler и просто обращаться, как к аттрибуту.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.