Python Forum
[Tkinter] how can disable menu [About] when Toplevel is active
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] how can disable menu [About] when Toplevel is active
#1
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.

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
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  pass a variable between tkinter and toplevel windows janeik 10 2,360 Jan-24-2024, 06:44 AM
Last Post: Liliana
  [Tkinter] Open tkinter colorchooser at toplevel (so I can select/focus on either window) tabreturn 4 1,916 Jul-06-2022, 01:03 PM
Last Post: deanhystad
  [Tkinter] Toplevel window menator01 5 3,074 Apr-18-2022, 06:01 PM
Last Post: menator01
  [Tkinter] Background inactivity timer when tkinter window is not active DBox 4 2,933 Apr-16-2022, 04:04 PM
Last Post: DBox
  [Tkinter] Not able to get image as background in a Toplevel window finndude 4 3,925 Jan-07-2022, 10:10 PM
Last Post: finndude
  [Tkinter] binding versus disable DPaul 6 6,759 May-05-2021, 05:17 PM
Last Post: DPaul
  [Tkinter] Images in Toplevel() finndude 4 4,310 Mar-09-2021, 09:39 AM
Last Post: finndude
  How to disable custom button Sancho_Pansa 7 3,508 Dec-04-2020, 02:21 PM
Last Post: buran
  Create image on a Toplevel using tkinter ViktorWong 3 7,847 Jun-13-2020, 03:21 PM
Last Post: deanhystad
  How to disable focus on Frame in Tkinter? szafranji 1 3,031 May-13-2020, 10:45 PM
Last Post: DT2000

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020