Probleme bei der Zuweisung eines tkFonts
Verfasst: Dienstag 6. August 2013, 21:56
Hallo,
ich beschäftige mich seit kurzem mit Tkinter und habe eine einfache GUI zu experimentieren gebaut.
Der Fehler tritt auf, wenn ich einem Button einen Font zuweisen will, den ich vorher im Konstruktor definiert habe. Python wirft den Fehler "Attribute Error: Application has no attribute 'fon'" was ich aber nicht verstehe, da der Font eben als Klassenmember definiert ist und somit auch vorhanden sein müsste.
Über Hilfe würde ich mich sehr freuen. Der Code und der Traceback für mein Problem sind anbei.
vg,
bestanyol
ich beschäftige mich seit kurzem mit Tkinter und habe eine einfache GUI zu experimentieren gebaut.
Der Fehler tritt auf, wenn ich einem Button einen Font zuweisen will, den ich vorher im Konstruktor definiert habe. Python wirft den Fehler "Attribute Error: Application has no attribute 'fon'" was ich aber nicht verstehe, da der Font eben als Klassenmember definiert ist und somit auch vorhanden sein müsste.
Über Hilfe würde ich mich sehr freuen. Der Code und der Traceback für mein Problem sind anbei.
vg,
bestanyol
Code: Alles auswählen
import Tkinter as tk
import tkFont
class Application(tk.Frame):
def __init__(self,master=None):
tk.Frame.__init__(self, master)
self.grid(sticky=tk.N+tk.S+tk.E+tk.W)
self.createWidgets()
self.fon = tkFont.Font("helvetica",size=14, weight="bold")
def createWidgets(self):
top = self.winfo_toplevel()
top.rowconfigure(0,weight=1)
top.columnconfigure(0,weight=1)
self.rowconfigure(0,weight=1)
self.columnconfigure(0,weight=1)
self.quitButton = tk.Button(self, text="Quit",command= self.quit,font=self.fon,relief="groove")
self.quitButton.grid(row=0,column=0,sticky=tk.N+tk.S+tk.E+tk.W)
app = Application()
app.master.title("Sample Application")
app.mainloop()
Code: Alles auswählen
Traceback (most recent call last):
File "C:\...\LTk-01-simpleExample.pyw", line 24, in <module>
app = Application()
File "C:\...\LTk-01-simpleExample.pyw", line 12, in __init__
self.createWidgets()
File "C:\...\LTk-01-simpleExample.pyw", line 21, in createWidgets
self.quitButton = tk.Button(self, text="Quit",command= self.quit,font=self.fon,relief="groove")
AttributeError: Application instance has no attribute 'fon'