Oct-25-2019, 09:49 PM
Hi. I want to disable the About menu when Toplevel is active.
When the Toplevel window is closed, I want the About menu to be active again.
When the Toplevel window is closed, I want the About menu to be active again.
from tkinter import (BOTH, END, BOTTOM, DISABLED, NORMAL, Tk, Frame, Menu, Button, Label, Text, Toplevel, Message, StringVar, IntVar) import subprocess as sub class App(Frame): def __init__(self): super().__init__() self.initUI() def initUI(self): self.master.title("Centered window") self.pack() self.centerWindow() menubar = Menu(self.master) self.master.config(menu=menubar) fileMenu = Menu(menubar, tearoff=0) fileMenu.add_command(label="ipconfig", command=self.ipconfig) fileMenu.add_separator() fileMenu.add_command(label="Exit", command=self.onExit) menubar.add_cascade(label="File", menu=fileMenu) helpMenu = Menu(menubar, tearoff=0) menubar.add_cascade(label="Help", menu=helpMenu) helpMenu.add_command(label="About", state=NORMAL, command=self.HelpAbout) def centerWindow(self): w = 804 h = 280 sw = self.master.winfo_screenwidth() sh = self.master.winfo_screenheight() x = (sw - w)/2 y = (sh - h)/2 self.master.geometry('%dx%d+%d+%d' % (w, h, x, y)) def HelpAbout(self): self.topHelp = Toplevel(self.master) print(str(self.topHelp.winfo_exists())) self.topHelp.title("###") self.MsgHelp = Message(self.topHelp) self.MsgHelp.pack() self.MsgHelp.config(text="bla bla bla") self.btHelp = Button(self.topHelp, text="bye", command=self.topHelp.destroy) self.btHelp.pack() def ipconfig(self): p = sub.Popen('ipconfig', shell=True, stdout=sub.PIPE, stderr=sub.PIPE) output, errors = p.communicate() print (output) def onExit(self): self.quit() def main(): root = Tk() root.resizable(0, 0) #block resize window ex = App() root.mainloop() if __name__ == '__main__': main()thank you in advance for the solution