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: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Blockiert der `mopidy.connect()`-Aufruf oder ist der asynchron?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten