[effa3c]: / GUI.py

Download this file

150 lines (106 with data), 4.0 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
from tkinter import *
import tkinter.font as tkFont
from tkinter import ttk
with open("D:\Cancer_Project\Team8_Cancer_ML\project_variables.txt","r") as projectVars:
vars=projectVars.readlines()
window = Tk()
window.title("Cancer ML")
window.iconbitmap("D:\Cancer_Project\Team8_Cancer_ML\cancer_icon.ico")
main_frame = Frame(window)
main_frame.pack(fill=BOTH,expand=1)
canvas = Canvas(main_frame)
canvas.pack(side=LEFT, fill=BOTH, expand=1)
# Add scrollbars to the canvas
scrollbar = ttk.Scrollbar(main_frame, orient=VERTICAL, command=canvas.yview)
scrollbar.pack(side=RIGHT, fill=Y)
scrollbar_x = ttk.Scrollbar(main_frame,orient=HORIZONTAL, command=canvas.xview)
scrollbar_x.pack(side=BOTTOM, fill=X)
# Configure the canvas
canvas.configure(xscrollcommand=scrollbar_x.set)
canvas.configure(yscrollcommand=scrollbar.set)
canvas.bind("<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")))
second_frame = Frame(canvas)
canvas.create_window((0,0), window=second_frame, anchor="nw")
# get screen dimensions
screenHeight = second_frame.winfo_screenheight()
screenWidth = second_frame.winfo_screenwidth()
# make font for title
fontTitle = tkFont.Font(family="Georgia",size=20)
# make font for variable labels
varFont = tkFont.Font(family="Times New Roman",size=16)
# color for variable labels
varColor = "#262121"
# make font for entry boxes
inputFont = tkFont.Font(family="Georgia",size=12)
# make title
title = Label(second_frame,text="Data Page",font=fontTitle)
title.grid(column=1)
# initalize vars
boolList = []
def true():
global boolList
bool = True
boolList.append(bool)
def false():
global boolList
bool = False
boolList.append(bool)
def makeButton(name):
label = Label(second_frame,text=name,font=varFont,fg=varColor)
label.grid(column=1,pady=40)
button = Button(second_frame,text="True",width=25,height=3,font=inputFont,command=true,activebackground='orange')
button.grid(column=1)
button = Button(second_frame,text="False",width=25,height=3,font=inputFont,command=false,activebackground='orange')
button.grid(column=1)
def makeEntry(name):
entryText = StringVar()
label = Label(second_frame,text=name,font=varFont,fg=varColor)
label.grid(column=1,pady=40)
entry = Entry(second_frame,textvariable=entryText,font=inputFont,width=25)
entry.grid(column=1)
return entryText
# initialize list for entryText vars
entryText_list = []
# initialize lists for var names
varList_txt = []
varList_bool = []
for var in vars:
var = str(var)
# checking if variable is a string
i = var.find('"')
# check if string contains tuple
t = var.find("(")
t2 = var.find(")")
# check if string contains numbers
n = any(char.isdigit() for char in var)
# Only use part of variable before equal sign
var = var.rsplit('=', 1)[0]
if i == -1 and t == -1 and t2 == -1 and n == False:
makeButton(var[:-1])
varList_bool.append(var)
else:
entryText = makeEntry(var[:-1])
entryText_list.append(entryText)
varList_txt.append(var)
# make new list for converted tkinter objects
txtEntry_list = []
def Continue():
global txtEntry_list
for entries in entryText_list:
txtEntry = entries.get()
entries.set("")
txtEntry_list.append(txtEntry)
window.quit()
# initialize bool
useDefaults = False
def useDefault():
global useDefaults
useDefaults = True
window.quit()
# make default button
defaultButton = Button(second_frame,text="Use Defaults",bg="orange",command=useDefault,font=varFont)
defaultButton.grid(column=2,padx=screenWidth/1.4)
# make continue button
contButton = Button(second_frame,text="Continue",bg="orange",command=Continue,font=varFont)
contButton.grid(column=2,padx=screenWidth/1.4)
window.mainloop()