2 GUI Windows in Tkinter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • melissajean
    New Member
    • Aug 2010
    • 6

    2 GUI Windows in Tkinter

    I am trying to make a simple dialog box, but when I run this, I get one black window in front of the working application window that I want. How do I get rid of that window?

    Code:
    from Tkinter import *
    import tkSimpleDialog
    from traders import QueryTrader
    
    class Inputs(tkSimpleDialog.Dialog):              
        
        def body(self, master):
            Label(master, text="Enter Environment Name:").grid(row=0)
            Label(master, text="ID #:").grid(row=1)
            Label(master, text="Enter Start Date for Query:").grid(row=2)
            Label(master, text="Enter End Date for Query:").grid(row=3)
            Label(master, text="Output File Location:").grid(row=4)
    
            self.e1 = Entry(master)
            self.e2 = Entry(master)
            self.e3 = Entry(master)
            self.e4 = Entry(master)
            self.e5 = Entry(master)
            
            self.e1.grid(row=0, column=1)
            self.e2.grid(row=1, column=1)
            self.e3.grid(row=2, column=1)
            self.e4.grid(row=3, column=1)
            self.e5.grid(row=4, column=1)
            return self.e1
        
        def apply(self):
            MXSess = int(self.e1.get())
            Id = int(self.e2.get())
            startDate = int(self.e3.get())
            endDate = int(self.e4.get())
            output = int(self.e5.get())
            
            new = Query()
            arr = new.loadFiles(MXSess, startDate, endDate, Id)
            new.searchDocs(arr, output)
            
    root = Tk()        
    root.title('Input Parameters')
    d = Inputs(root)
  • dwblas
    Recognized Expert Contributor
    • May 2008
    • 626

    #2
    First, you have to pass the Tk() instance to your class. Second, you are not using SimpleDialog so there is no reason to inherit it. Take another look at where you got the code and see what they did and did not do. Some modified code that you can start with follows. Tkinter tutorials/references:

    http://effbot.org/tkinterbook/
    Code:
    from Tkinter import *
    ##import tkSimpleDialog
    ##from traders import QueryTrader
     
    class Inputs():              
    ##class Inputs(tkSimpleDialog.Dialog):              
     
        def __init__(self, master):
            self.body(master)
    
        def body(self, master):
            Label(master, text="Enter Environment Name:").grid(row=0)
            Label(master, text="ID #:").grid(row=1)
            Label(master, text="Enter Start Date for Query:").grid(row=2)
            Label(master, text="Enter End Date for Query:").grid(row=3)
            Label(master, text="Output File Location:").grid(row=4)
     
            self.e1 = Entry(master)
            self.e2 = Entry(master)
            self.e3 = Entry(master)
            self.e4 = Entry(master)
            self.e5 = Entry(master)
     
            self.e1.grid(row=0, column=1)
            self.e2.grid(row=1, column=1)
            self.e3.grid(row=2, column=1)
            self.e4.grid(row=3, column=1)
            self.e5.grid(row=4, column=1)
    
            ##----- you don't have to return as "self." variables
            ##      are global within the class
            ##return self.e1
     
        def apply(self):
            MXSess = int(self.e1.get())
            Id = int(self.e2.get())
            startDate = int(self.e3.get())
            endDate = int(self.e4.get())
            output = int(self.e5.get())
     
    ##        new = Query()
    ##        arr = new.loadFiles(MXSess, startDate, endDate, Id)
    ##        new.searchDocs(arr, output)
     
    root = Tk()        
    root.title('Input Parameters')
    d = Inputs(root)
    root.mainloop()

    Comment

    Working...