Hallo Phraya,
Wie testet Du deinen Code?
In deinem Beispiel fehlt die Art, wie Du Tk und Menu importierst.
Dann kann das:
nicht funktionieren.
Es sollte so heissen:
Code: Alles auswählen
demo.file_menu.entryconfigure("Save", state="disabled")
Um überhaupt deinen Code zum Laufen zu bringen, sollte er in etwa so aussehen:
Code: Alles auswählen
from tkinter import Tk, Menu
class MyProgram:
def __init__(self):
self.tk = Tk()
self.menu = Menu(self.tk)
self.tk.config(menu=self.menu)
self.main_menu = Menu(self.menu, tearoff=0)
self.main_menu .add_command(label="StartScreen")
self.main_menu .add_command(label="Settings")
self.main_menu .add_command(label="Exit")
self.menu.add_cascade(label="Main", menu=self.main_menu )
self.file_menu = Menu(self.menu, tearoff=0)
self.file_menu.add_command(label="Open")
self.file_menu.add_command(label="Save")
self.file_menu.add_command(label="Print")
self.menu.add_cascade(label="File", menu=self.file_menu)
self.test_menu = Menu(self.menu, tearoff=0)
self.test_menu.add_command(label="Test")
self.menu.add_cascade(label="Test", menu=self.test_menu)
self.tk.mainloop()
demo = MyProgram()
demo.file_menu.entryconfigure("Save", state='disabled')
Jedoch löst dieser Code dein Problem mit der deaktivierten SAVE Taste nicht.
Ich hab dir ein kleines Beispiel gebaut.
Code: Alles auswählen
from tkinter import Menu, Tk, Frame
class Gui(object):
def __init__(self):
root = Tk()
rahmen = Frame(root, width =300, height = 150, bg = "cyan")
rahmen.pack()
self.savemerker = "nicht gespeichert"
menuleiste = Menu(rahmen, bg = "white")
self.filemenu = Menu(master = menuleiste)
root.configure(menu = menuleiste)
menuleiste.add_cascade(label = " File ",
menu = self.filemenu)
self.filemenu.add_command(label = "Open",
command = self.oeffne)
self.filemenu.add_command(label = "Save",
command = self.speichere)
self.filemenu.entryconfig("Save", state = "disabled")
root.mainloop()
def oeffne(self):
self.savemerker = "gespeichert"
if self.savemerker == "gespeichert":
self.filemenu.entryconfig("Save", state = "normal")
print("geöffnet")
def speichere(self):
self.savemerker = "nicht gespeichert"
self.filemenu.entryconfig("Save", state = "disabled")
self.tu_irgendetwas()
def tu_irgendetwas(self):
print("Die Taste 'speichern' wurde betätigt")
if __name__ == "__main__":
start = Gui()
Gruss
Peter