self.root = root
self.root.resizable(width=FALSE, height=FALSE)
self.root.title("Client")
self.menu_bar = Menu(self.root)
self.file_menu = Menu(self.menu_bar, tearoff=0)
self.file_menu.add_command(label="Log in", command=self.show_log_in)
self.file_menu.add_command(label="Reconnect", command=self.reconnect)
self.file_menu.entryconfig(1, state=DISABLED)
self.file_menu.add_command(label="Exit", command=self.root.destroy)
self.menu_bar.add_cascade(label="File", menu=self.file_menu)

Próbuję zmienić tekst w kaskadzie "Plik" do innego słowa. Co to jest polecenie? Próbowałem:

self.menu_bar.entryconfig(0, label="Different word")

Ale to nie działa. (podniesiony błąd).

0
moshe boshe 3 czerwiec 2018, 13:05

4 odpowiedzi

Najlepsza odpowiedź

File cascade jest 1 indeksowany wpis. To działa dla mnie:

self.menu_bar.entryconfig(1, label="Different word")
0
kabanus 3 czerwiec 2018, 11:58

Po utworzeniu przycisku musisz mieć polecenie, które wywołuje funkcję, która zmieni tekst. Na przykład:

btn3 = Tkinter.Button(root, text="Create Shortcut", bg=gridcolor7, state="normal",  
    width=btnw, height=btnh, command=lambda k='new text': arm_shortcut_command(k))  
btn3.grid(row=r,column=c)

def arm_shortcut_command(k):
    <code to change menu text>
    return
0
Marichyasana 3 czerwiec 2018, 11:13

Możesz spróbować czegoś takiego:

label_text = StringVar()
self.menu_bar.add_cascade(label=label_text, menu=self.file_menu)
self.label_text.set("File")

def change_label(self,text):
    self.label_text.set(text)

Zrzeczenie się: Nie przetestowałem tego kodu.

0
Hein Wessels 3 czerwiec 2018, 10:17

Możesz zmienić element z etykietą elementu połączenia. Na przykład z kodu, zmieniam nazwę "Zaloguj się" na "różne słowo" i stan "ponownego połączenia", aby wyłączyć w Python3.

self.file_menu.entryconfig("Log in",label="Different word")
self.file_menu.entryconfig("Reconnect",state=DISABLE)
0
reza javan 6 wrzesień 2020, 08:50