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,135 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,829 Jul-06-2022, 01:03 PM
Last Post: deanhystad
  [Tkinter] Toplevel window menator01 5 2,984 Apr-18-2022, 06:01 PM
Last Post: menator01
  [Tkinter] Background inactivity timer when tkinter window is not active DBox 4 2,860 Apr-16-2022, 04:04 PM
Last Post: DBox
  [Tkinter] Not able to get image as background in a Toplevel window finndude 4 3,836 Jan-07-2022, 10:10 PM
Last Post: finndude
  [Tkinter] binding versus disable DPaul 6 6,594 May-05-2021, 05:17 PM
Last Post: DPaul
  [Tkinter] Images in Toplevel() finndude 4 4,223 Mar-09-2021, 09:39 AM
Last Post: finndude
  How to disable custom button Sancho_Pansa 7 3,410 Dec-04-2020, 02:21 PM
Last Post: buran
  Create image on a Toplevel using tkinter ViktorWong 3 7,745 Jun-13-2020, 03:21 PM
Last Post: deanhystad
  How to disable focus on Frame in Tkinter? szafranji 1 2,967 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