2016-12-07 8 views
0
class MyWindow(Gtk.Window): 
    def __init__(self): 
     Gtk.Window.__init__(self, title="Grid example") 
     grid = Gtk.Grid() 

     #combobox 
     devices_list = Gtk.ListStore(int, str) 
     devices_list.append([1, "Device 1"]) 
     devices_list.append([2, "Device 2"]) 
     name_combo = Gtk.ComboBox.new_with_model_and_entry(devices_list) 
     *name_combo.connect("changed", self.on_name_combo_changed)* 
     name_combo.set_entry_text_column(1) 
     grid.attach(name_combo, 5, 0, 2, 1) 

Hey Leute, ich bin neu in Python, aber ich bin so mit diesem Fehler festgefahren. Ich habe sowohl Tutorials als auch Dokumente gelesen, aber ich kann das nicht herausfinden. Ich kann nicht herausfinden, warum es sagt, dass es kein Attribut hat, auch wenn ich es nach "Selbst" erwähne.AttributError: 'MyWindow' Objekt hat kein Attribut 'on_name_combo_changed'

+0

'on_name_combo_changed' hat Ihre eigene Methode in der Klasse sein. Ich sehe 'def on_name_combo_changed (self)' nicht in Ihrem Code. – furas

Antwort

0

Sie müssen Ihre Methode on_name_combo_changed(self, widget) in Ihrer Klasse erstellen.

from gi.repository import Gtk 

class MyWindow(Gtk.Window): 

    def __init__(self): 
     Gtk.Window.__init__(self, title="Grid example") 

     self.connect("delete-event", Gtk.main_quit) 

     grid = Gtk.Grid() 
     self.add(grid) 

     #combobox 
     devices_list = Gtk.ListStore(int, str) 
     devices_list.append([1, "Device 1"]) 
     devices_list.append([2, "Device 2"]) 

     name_combo = Gtk.ComboBox.new_with_model_and_entry(devices_list) 
     name_combo.connect("changed", self.on_name_combo_changed) 
     name_combo.set_entry_text_column(1) 
     grid.attach(name_combo, 5, 0, 2, 1) 

     self.show_all() 

    def on_name_combo_changed(self, widget): 
     print('ComboBox:', widget) 


app = MyWindow() 
Gtk.main() 

Python GTK + 3 Tutorial: 13. ComboBox

+0

Vielen Dank !!!!!!! – AmolJ

Verwandte Themen