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