Seite 1 von 1

object has no attribute 'tk' ??

Verfasst: Sonntag 1. Juni 2003, 10:01
von XT@ngel
Hallo zusammen ich hab ein kleines Problem mit Tk und ich hoffe das ich das richtig beschreiben kann *g*

Ich schreibe gerade an einem Programm das eine Plugin Funktion haben soll.

Das Eigentliche Programm besteh aus:
- einer Klasse mit gesammter GUI (GUI_modul.py)
- und dem Programme (Prog.py)

in Prog.py mach ich jetzt folgendes um ein Plugin zu laden:

Code: Alles auswählen

import GUI_modul

class Prog(GUI_modul.GUI):
   def __init__(self):
      GUI_modul.GUI.__init__(self)
  
  def Load_Plugin(self):
      """Lädt ein Plugin"""
      plugin_file = self.aktiv_plugin_var.get()
      dirs = ["plugins/",]
      modul_name = plugin_file[:-3]
      # ToDO Überprüfen ob schon geladen
      fp, pathname, description = imp.find_module(modul_name, dirs)
      try:
         modul = imp.load_module(plugin_file, fp, plugin_file, description)
	self.loadet_plugin = modul.Plugin(self) #Erzeuge Instanz von Plugin Klasse und übergebe ihr Instanz von Prog 
      except:
	#Meldung             
Mein Plugin sieht so aus:

Code: Alles auswählen

class Plugin:
   def __init__(self, prog_obj):
      self.plugin_name = "Suche"
      self.prog_obj = prog_obj
      self.SETUP_PLUGIN_GUI()

   def SETUP_PLUGIN_GUI(self):
      self.frame_3 = Frame(self.prog_obj.plugin_frame,  height=20)
      self.frame_3.pack(side=TOP, expand=0, fill=X, anchor=N)
      self.GENREQL_Label = Label(self.frame_3, text="Genre :", anchor='w').pack(side=LEFT, expand=0, fill=X, anchor=W)
      genre = StringVar()
      self.prog_obj.found_genres.append("ALL")
      test = tuple(self.prog_obj.found_genres)
      self.genre_select = apply(OptionMenu, (self.frame_3, genre) + test)
      self.genre_select.pack(side=LEFT, expand=0, fill=X, anchor=W)
das eigentliche Problem ist diese Zeile

Code: Alles auswählen

 genre = StringVar()
Hier bekomme ich "AttributeError: 'NoneType' object has no attribute 'tk'"
Ist bestimmt nur ein kleiner Fehler den ich nicht sehe :(

MfG und Danke
Andreas

Re: object has no attribute 'tk' ??

Verfasst: Sonntag 1. Juni 2003, 11:03
von Voges
Hallo!
XT@ngel hat geschrieben:Hier bekomme ich "AttributeError: 'NoneType' object has no attribute 'tk'"
Der Aufruf von StringVar() und Co. darf (zur Laufzeit) erst erfolgen, nachdem root = Tk() aufgerufen wurde. Vielleicht liegts daran.

Jan

Verfasst: Sonntag 1. Juni 2003, 11:15
von XT@ngel
Danke Danke Danke :wink:
Du hast mir die Augen geöffnet. Die Zeile muss so sein:

genre = StringVar(self.prog_obj.main_window)

Da ich main_window schon in der init Methode meiner GUI erstelle.