New to Tkinter GUI building

Adam adamgarstang at googlemail.com
Wed Feb 28 15:47:55 EST 2007


Hey,

I'm pretty new to programming. Been trying to learn using Python.
The code I'm struggling with is for my GUI.

I'm am having trouble getting this to display the way I want with the
grid manager. Can anybody tell me what I am doing wrong? I hope you
can tell what look I'm trying to achieve from the code as its hard to
explain.

I think my main questions are:
1. How can I get the Window to be sized the way I want it?
2. How can I get the Scrollbars to fill the side of the text box
instead of being small? (like .pack(fill= tk.Y)

######Code#######

#file/path finder
#indentation value 4
import os,glob
import Tkinter as tk

# Class to create the Application and UI
class Theapp:
    def __init__(self):
        # Create GUI parts. Will allign later with grid
        self.top = tk.Tk()
        self.mainWindow = tk.Frame(self.top, width=700, height=400)
        self.labAll = tk.Label(self.mainWindow, text="All Files/
Folders:")
        self.labVi = tk.Label(self.mainWindow, text="Violating Files/
Folders:")

        #Create a sub-frame containing textbox and scrollbar for All
files scanned display
        self.allTxtf = tk.Frame(self.mainWindow, width=699,
height=164)
        self.scrlr1 = tk.Scrollbar(self.allTxtf)
        self.txtBoxall = tk.Text(self.allTxtf, wrap=tk.CHAR,
yscrollcommand=self.scrlr1.set)
        self.scrlr1.config(command = self.txtBoxall.yview)

        #Create another sub-frame containing textbox and scrollbar for
the Violating files display
        self.viTxtf = tk.Frame(self.mainWindow, width=699, height=164)
        self.scrlr2 = tk.Scrollbar(self.viTxtf)
        self. txtBoxvi = tk.Text(self.viTxtf, wrap=tk.CHAR,
yscrollcommand=self.scrlr2.set)
        self.scrlr2.config(command = self.txtBoxvi.yview)

        #Create another sub-frame to contain the controls
        self.ctrlFrame = tk.Frame(self.mainWindow, width=699,
height=72)
        self.labDir = tk.Label(self.ctrlFrame, text="Dir:")
        self.entDir = tk.Entry(self.ctrlFrame)
        self.labChar = tk.Label(self.ctrlFrame, text="Char. Limit:")
        self.entChar = tk.Entry(self.ctrlFrame)
        self.btFind = tk.Button(self.ctrlFrame, text="Scan", command =
self.fillboxes)
        self.btExit = tk.Button(self.ctrlFrame, text="Exit", command =
self.quitEvent)


        #Use tkinter's grid geometry manager to allign and display the
GUI
        self.mainWindow.grid()
        #Frist allign the 3 main frames
        self.labAll.grid(row=0)
        self.allTxtf.grid(row=1)
        self.labVi.grid(row=2)
        self.viTxtf.grid(row=3)
        self.ctrlFrame.grid(row=4)
        #Now allign the content of allTxtf
        self.txtBoxall.grid(row=0, column=0)
        self.scrlr1.grid(row=0, column=1)
        #Now allign the content for viTxtf
        self.txtBoxvi.grid(row=0, column=0)
        self.scrlr2.grid(row=0, column=1)
        #Now allign the content for ctrlFrame
        self.labDir.grid(row=0, column=0, sticky=tk.E)
        self.entDir.grid(row=0, column=1)
        self.labChar.grid(row=0, column=2, sticky=tk.E)
        self.entChar.grid(row=0, column=3)
        self.btFind.grid(row=0, column=4)
        self.btExit.grid(row=0,column=5)

    def findallfiles(self, base):
        pass

    def fillboxes(self):
        pass

    def quitEvent(self):
        raise SystemExit

app = Theapp()
app.mainWindow.mainloop()

######End Code#######

I have only posted the code relevant to the GUI.

TIA
Adam




More information about the Python-list mailing list