GTK: GUI friert ein

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
spaph
User
Beiträge: 10
Registriert: Samstag 26. November 2016, 16:30

Hallo Python Freunde :)

Ich habe das Problem, dass wenn mehrmals den text vom "label1" geändert wird das GUI (Label) quasi einfriert. Als Error bekomme ich dann:
Warning: Source ID ** was not found when attempting to remove it.

Ich vermute mal das sich der Gtk.Mainloop und self.mopidy.bind_event sich irgend wie in die quere kommen. Hättet ihr ein Tipp für mich wie ich das ganze stabil zum laufen bekomme?

Code: Alles auswählen

class mopidy_player:
    def __init__(self, gui):
        self.gui = gui

        self.mopidy = MopidyClient()
        self.bind_events()
        self.mopidy.connect()

    def bind_events(self):
        self.mopidy.bind_event('playback_state_changed', self.gui.playback_state_changed)

class gui(object):
    def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file("ui2.glade")

    def playback_state_changed(self, old_state, new_state):
        self.builder.get_object("label1").set_text(new_state)

    def main(self):
        try:
            Gtk.main()
        except KeyboardInterrupt:
            pass
  
if __name__ == '__main__':
    gui = gui()
    mopidy_player(gui)
    gui.main()
Benutzeravatar
__blackjack__
User
Beiträge: 14336
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Blockiert der `mopidy.connect()`-Aufruf oder ist der asynchron?
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
Antworten