Jan-04-2019, 07:13 PM
(This post was last modified: Jan-04-2019, 07:13 PM by whisperquiet.)
Hey guys, I am having an issue with my Python 3.71 Tkinter GUI class that I have been writing. I am relatively new to Python and the present code is an amalgam of online tutorials found at the top ten links found on google through "Python Tkinter GUI tutorial" google search.
I have a link to the Stackoverflow post for the code and history of the question, but I would very much appreciate any of your help, feedback, and critique.
https://stackoverflow.com/questions/5403...perational
I have a link to the Stackoverflow post for the code and history of the question, but I would very much appreciate any of your help, feedback, and critique.
https://stackoverflow.com/questions/5403...perational
from tkinter import *
from tkinter import ttk
import tkinter.scrolledtext as tkst
import os
import tkinter as tk
from functools import partial
from PIL import Image, ImageTk
class UserGui(tk.Tk):
def __init__(self,parent):
self.parent=parent
self.widgets()
def widgets(self):
self.parent.configure(bg='white')
self.frame1_style = ttk.Style()
self.frame1_style.configure('My.TFrame', background='white')
self.frame2_style = ttk.Style()
self.frame2_style.configure('My2.TFrame',background='white')
self.parent.title("TGUI")
self.frame1 = ttk.Frame(self.parent, style='My.TFrame') #Creating Total Window Frame 1
self.frame1.grid(row=0, column=0, sticky=(N, S, E, W))
self.frame2 = ttk.Frame(self.parent, width=100, height=20, style='My2.TFrame')
self.frame2.grid(row=0, column=6, padx=20, pady=5)
self.newText = tkst.ScrolledText(master=self.frame2, wrap=tk.WORD, width=50, height=10)
self.newText.grid(row=0, column=6)
self.firstNameLabel = ttk.Label(self.frame1, text="First Name")
self.firstName = ttk.Entry(self.frame1)
self.lastNameLabel = ttk.Label(self.frame1, text="Last Name")
self.lastName = ttk.Entry(self.frame1)
self.optList1 = [
"1",
"2",
"3"
]
self.optList2 = [
"1",
"2",
"3",
"4"
]
self.var1 = StringVar(self.parent)
self.var1.set(self.optList1[0]) #first value default
self.var2 = StringVar(self.parent)
self.var1.set(self.optList2[0]) #first value default
self.optMenu1 = ttk.OptionMenu(self.frame1, self.var1, self.optList1[0], *self.optList1)
self.optMenu2 = ttk.OptionMenu(self.frame1, self.var2, self.optList2[0], *self.optList2)
self.rConfigNameLabel = ttk.Label(self.frame1, text="Sel1: ")
self.rModeNameLabel = ttk.Label(self.frame1, text="Sel2: ")
self.saveButton_style = ttk.Style()
self.saveButton_style.configure('newButton.TButton', background='#404040')
self.saveButton = ttk.Button(self.frame1, text="Save and Quit", command=self.parent.quit, style='newButton.TButton')
self.showButton = ttk.Button(self.frame1, text="Show Entries", command=partial(self.showEntryFields), style='newButton.TButton')
#------------------------------------------------------------------------------------
#Grid Call Collection
self.firstNameLabel.grid(row=0, column=0, sticky=W, padx=5)
self.firstName.grid(row=0, column=1, sticky=(N, E, W), padx=5, pady=5)
self.lastNameLabel.grid(row=1, column=0, sticky=W, padx=5)
self.lastName.grid(row=1, column=1, sticky=(N, E, W), padx=5, pady=5)
self.optMenu1.grid(row=2, column=1, padx=5,pady=5)
self.optMenu2.grid(row=3, column=1, pady=5)
self.rConfigNameLabel.grid(row=2, column=0, sticky=W, padx=5)
self.rModeNameLabel.grid(row=3, column=0, sticky=W, padx=5)
self.saveButton.grid(row=4, column=1, sticky=W, padx=5, pady=20)
self.showButton.grid(row=4, column=0, sticky=W, padx=5, pady=20)
#------------------------------------------------------------------------------------
#Menu Creation
self.menu1 = tk.Menu(self.parent, tearoff=0)
self.parent.config(menu=self.menu1)
self.fileMenu = tk.Menu(self.menu1, tearoff=0)
self.fileMenu.add_command(label="Open", command=self.donothing)
self.fileMenu.add_command(label="Save", command=self.donothing)
self.fileMenu.add_separator()
self.fileMenu.add_command(label="Exit", command=self.parent.quit)
self.fileMenu.add_cascade(label="File", menu=self.menu1)
self.editMenu = tk.Menu(self.menu1, tearoff=0)
self.editMenu.add_command(label="Cut", command=self.donothing)
self.editMenu.add_command(label="Copy", command=self.donothing)
self.editMenu.add_command(label="Paste", command=self.donothing)
self.editMenu.add_cascade(label="Edit", menu=self.menu1)
def showEntryFields(self):
if __name__ == "__main__":
print("First Name: %s\nLast Name: %s" % (self.firstName.get(), self.lastName.get()))
print("Sel1: %s\nSel2: %s" % (self.var1.get(),self.var2.get()))
def donothing(self):
filewin = Toplevel(self.parent)
button = Button(filewin, text="Do nothing button")
button.pack()
def main():
root=tk.Tk()
ug=UserGui(root)
root.mainloop()
if __name__ == '__main__':
main()Thank you for your time.
