-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathframetesting.py
147 lines (124 loc) · 5.21 KB
/
frametesting.py
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
import tkinter as tk
from tkinter import StringVar, ttk
from tkinter import font
from tkinter.constants import EW, NS, NSEW
from tkinter.messagebox import showerror, showinfo, askretrycancel
def topheader_frame(container):
#add label frame
top_labelframe = ttk.LabelFrame(container)
# return the toplevel frame
return top_labelframe
# create our 'footer' frame at bottom
def bottom_frame(container):
bottom_labelframe = ttk.LabelFrame(container)
return bottom_labelframe
# create our left side frame
def leftside_frame(container):
# add our labelframe
left_labelframe = ttk.LabelFrame(
container, text='Water Data', labelanchor='n')
left_labelframe.columnconfigure(0, weight=1)
left_labelframe.columnconfigure(1, weight=1)
# enter water body name
streamlabel_text = tk.StringVar()
streamlabel = ttk.Label(left_labelframe, text='Water Fished(Name):',foreground='black', background='#FFEBF2', style='Data.TLabel')
streamlabel.grid(column=0, row=1, sticky=tk.W,padx=5, pady=5, ipady=3, ipadx=3)
streamlabel_entry = ttk.Entry(left_labelframe, takefocus=0, cursor='hand1', textvariable=streamlabel_text)
streamlabel_entry.grid(column=1, row=1, sticky=tk.EW)
# enter water type
def watertype_selected(event):
msg = f'You selected {watertype_text.get()}!'
showinfo(title='Result', message=msg)
watertypes = ('Cold','Cool','Warm','Cold-Cool','Cool-Warm')
watertype_text = tk.StringVar()
watertypelabel = ttk.Label(left_labelframe, text='Water Type(Temp):')
watertypelabel.grid(column=0, row=3, sticky=tk.W,
padx=5, pady=5, ipady=3, ipadx=3)
watertypelabel_combo = ttk.Combobox(
left_labelframe, textvariable=watertype_text)
watertypelabel_combo['values'] = watertypes
watertypelabel_combo['state'] = 'readonly'
watertypelabel_combo.grid(column=1, row=3, sticky=tk.EW)
watertypelabel_combo.bind('<<ComboboxSelected>>', watertype_selected)
# add species type
def species_selected(event):
msg = f'You selected {specieslabel_text.get()}!'
showinfo(title='Result', message=msg)
# tkinter stuff for species select
species = ('Brown Trout', 'Rainbow Trout', 'Brook Trout', 'Steelhead', 'Lake Run Brown Trout', 'Carp', 'Smallmouth Bass',
'Largemouth Bass', 'Bluegill', 'Pumpkinseed', 'Perch', 'Walleye', 'Northern Pike', 'Musky', 'Bullhead')
specieslabel_text = tk.StringVar()
specieslabel = ttk.Label(left_labelframe,text='Select Species Caught:')
specieslabel.grid(column=0, row=2, sticky=tk.W,padx=5, pady=5, ipady=3, ipadx=3)
specieslabel_combo = ttk.Combobox(left_labelframe, textvariable=specieslabel_text)
specieslabel_combo['values'] = species
specieslabel_combo['state'] = 'readonly'
specieslabel_combo.grid(column=1, row=2, sticky=tk.EW)
specieslabel_combo.bind('<<ComboboxSelected>>', species_selected)
return left_labelframe
# add our labelframe
def rightside_frame(container):
right_labelframe = ttk.LabelFrame(container)
return right_labelframe
# create our main app window
def create_main_window():
# create root
root = tk.Tk()
root.title('ASDF')
root.geometry('800x600+295+55')
root.iconbitmap('./assets/favicon_sa.ico')
root.resizable(True, True)
# root.configure(bg='#FFEBF2')
#create our new style library
style = ttk.Style()
style.theme_create('style', parent='alt',
settings = {
'TLabelframe': {
'configure': {
'background': 'white',
'relief': 'solid', # has to be 'solid' to color
'bordercolor': 'red',
'borderwidth': 2
}
},
'TLabelframe.Label': {
'configure': {
'foreground': 'green',
'background': 'white'
}
},
'TLabel': {
'configure': {
'font': ('Fira Code',9),
'foreground': 'black'
}
}
})
style.theme_use('style')
# create our style library(this is the old)
""" style = ttk.Style()
style.theme_use('vista')
# the below is automagically applied to any labelframe label txt
style.configure('TLabelframe.Label', font=('Red Hat Text', 11))
style.configure('TLabel', font=('Fira Mono', 9))
style.configure('Bottom.TLabelframe', bd=4, bc='Black')
style.configure('Bottom.TLabelframe.Label', font=('Book Antiqua', 9))
style.configure('Data.TLabel', font=('Roboto Mono', 9)) """
# add our other frames
# maintain this order of adding frames to keep footer correct
top_frame = topheader_frame(root)
top_frame.pack(side='top', expand=0, fill='x',
ipady=15, ipadx=15, pady=3, padx=3)
footer_frame = bottom_frame(root)
footer_frame.pack(side='bottom', expand=0, fill='x',
ipady=20, ipadx=20, pady=3, padx=3)
right_frame = rightside_frame(root)
right_frame.pack(side='right', expand=1, fill='both',
ipady=3, ipadx=3, pady=3, padx=3)
left_frame = leftside_frame(root)
left_frame.pack(side='left', expand=1, fill='both',
ipady=3, ipadx=3, pady=3, padx=3)
# run mainlooop on the root
root.mainloop()
if __name__ == "__main__":
create_main_window()