как изменить текст в каскаде меню ткинтер - PullRequest
0 голосов
/ 03 июня 2018
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)

Я пытаюсь изменить текст в каскаде «Файл» на другое слово.Какая команда для этого?Я пытался:

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

Но это не работает.(поднял ошибку).

Ответы [ 3 ]

0 голосов
/ 03 июня 2018

Когда вы создаете экземпляр кнопки, вам нужна команда, которая вызывает функцию, которая изменит текст.Например:

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 голосов
/ 03 июня 2018

File cascade - это 1 проиндексированная запись.Это работает для меня:

self.menu_bar.entryconfig(1, label="Different word")
0 голосов
/ 03 июня 2018

Вы можете попробовать что-то вроде этого:

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)

Отказ от ответственности: Я не тестировал этот код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...