@@ -16,15 +16,33 @@ def __init__(self, height, width, window_title):
16
16
self .root_window .title (window_title )
17
17
self .root_window .minsize (width , height )
18
18
self .root_window .geometry ('%dx%d+%d+%d' % (w , h , x , y ))
19
- self .master_dictionary = {"radio_ctrl" : StringVar ()}
19
+ self .master_dictionary = {"radio_ctrl" : StringVar (), "top_level_window" : False }
20
+
21
+ def new_top_level (self , height , width , window_title ):
22
+ self .top_level_window = Toplevel ()
23
+ w = width
24
+ h = height
25
+ ws = self .top_level_window .winfo_screenwidth () # width of the screen
26
+ hs = self .top_level_window .winfo_screenheight () # height of the screen
27
+ x = (ws / 2 ) - (w / 2 )
28
+ y = (hs / 2 ) - (h / 2 )
29
+ self .top_level_window .title (window_title )
30
+ self .top_level_window .minsize (width , height )
31
+ self .top_level_window .geometry ('%dx%d+%d+%d' % (w , h , x , y ))
20
32
21
33
def new_button (self , button_text , button_command = "" , grid_row = 0 , grid_column = 0 , grid_sticky = "NESW" , grid_columnspan = 1 , grid_rowspan = 1 ):
22
- self .button = ttk .Button (self .root_window , text = button_text , command = button_command )
34
+ if self .master_dictionary ["top_level_window" ]:
35
+ self .button = ttk .Button (self .top_level_window , text = button_text , command = button_command )
36
+ elif not self .master_dictionary ["top_level_window" ]:
37
+ self .button = ttk .Button (self .root_window , text = button_text , command = button_command )
23
38
self .button .grid (row = grid_row , column = grid_column , sticky = grid_sticky , columnspan = grid_columnspan , rowspan = grid_rowspan )
24
39
self .responsive_grid (grid_row , grid_column )
25
40
26
41
def new_label (self , label_text , text_alignment = "center" , grid_row = 0 , grid_column = 0 , grid_sticky = "NESW" , grid_columnspan = 1 , grid_rowspan = 1 ):
27
- self .label = ttk .Label (self .root_window , text = label_text , anchor = text_alignment )
42
+ if self .master_dictionary ["top_level_window" ]:
43
+ self .label = ttk .Label (self .top_level_window , text = label_text , anchor = text_alignment )
44
+ elif not self .master_dictionary ["top_level_window" ]:
45
+ self .label = ttk .Label (self .root_window , text = label_text , anchor = text_alignment )
28
46
self .label .grid (row = grid_row , column = grid_column , sticky = grid_sticky , columnspan = grid_columnspan , rowspan = grid_rowspan )
29
47
self .responsive_grid (grid_row , grid_column )
30
48
@@ -34,11 +52,18 @@ def new_progress_bar(self, pg_length=250, pg_mode="determinate", grid_row=0, gri
34
52
self .responsive_grid (grid_row , grid_column )
35
53
36
54
def responsive_grid (self , row_responsive = 0 , column_responsive = 0 , row_weight_num = 1 , column_weight_num = 1 ):
37
- self .root_window .grid_columnconfigure (column_responsive , weight = column_weight_num )
38
- self .root_window .grid_rowconfigure (row_responsive , weight = row_weight_num )
55
+ if self .master_dictionary ["top_level_window" ]:
56
+ self .top_level_window .grid_columnconfigure (column_responsive , weight = column_weight_num )
57
+ self .top_level_window .grid_rowconfigure (row_responsive , weight = row_weight_num )
58
+ elif not self .master_dictionary ["top_level_window" ]:
59
+ self .root_window .grid_columnconfigure (column_responsive , weight = column_weight_num )
60
+ self .root_window .grid_rowconfigure (row_responsive , weight = row_weight_num )
39
61
40
62
def new_radio_button (self , widget_text = "Radio Button" , radio_value = "Radio Btn" , radio_command = "" , grid_row = 0 , grid_column = 0 , grid_sticky = "NESW" , grid_columnspan = 1 , grid_rowspan = 1 ):
41
- self .radio_button = ttk .Radiobutton (self .root_window , text = widget_text , variable = self .master_dictionary ["radio_ctrl" ], value = radio_value , command = radio_command )
63
+ if self .master_dictionary ["top_level_window" ]:
64
+ self .radio_button = ttk .Radiobutton (self .top_level_window , text = widget_text , variable = self .master_dictionary ["radio_ctrl" ], value = radio_value , command = radio_command )
65
+ elif not self .master_dictionary ["top_level_window" ]:
66
+ self .radio_button = ttk .Radiobutton (self .root_window , text = widget_text , variable = self .master_dictionary ["radio_ctrl" ], value = radio_value , command = radio_command )
42
67
self .radio_button .grid (row = grid_row , column = grid_column , sticky = grid_sticky , columnspan = grid_columnspan , rowspan = grid_rowspan )
43
68
self .responsive_grid (grid_row , grid_column )
44
69
@@ -127,7 +152,7 @@ def toggle_var(self, var_name="some_var", custom_data=False, custom_data_enable=
127
152
def save_radio_var (self ):
128
153
vars_system .init_vars [self .change_var_window_values ["var_to_change" ]] = self .master_dictionary ["radio_ctrl" ].get ()
129
154
messagebox .showinfo ("debug" , self .master_dictionary ["radio_ctrl" ].get ())
130
- # self.root_window .destroy()
155
+ self .top_level_window .destroy ()
131
156
#main_window.root_window.deiconify()
132
157
133
158
@@ -147,7 +172,7 @@ def create_change_var_window(self):
147
172
self .new_radio_button (widget_text = radio_name , radio_value = value , grid_row = grid_placement )
148
173
grid_placement += 1
149
174
grid_placement -= 1
150
- self .new_button ("Cancle" , self .root_window .destroy , grid_row = grid_placement , grid_column = 1 )
175
+ self .new_button ("Cancle" , self .top_level_window .destroy , grid_row = grid_placement , grid_column = 1 )
151
176
grid_placement -= 1
152
177
self .new_button ("Save" , self .save_radio_var , grid_row = grid_placement , grid_column = 1 )
153
178
# Radio Requires:
@@ -158,7 +183,10 @@ def create_change_var_window(self):
158
183
self .new_button ("Cancel" , self .root_window .destroy , grid_row = 3 , grid_column = 1 )
159
184
# Free_form requires:
160
185
# "var_to_change" and "is_number"
161
- self .root_window .mainloop ()
186
+ if self .master_dictionary ["top_level_window" ]:
187
+ self .top_level_window .mainloop ()
188
+ elif not self .master_dictionary ["top_level_window" ]:
189
+ self .root_window .mainloop ()
162
190
163
191
# seperator
164
192
@@ -275,32 +303,24 @@ def example_toggle():
275
303
toggle .create_change_var_window ()
276
304
277
305
def radio_example ():
278
- radio = change_var_window (300 , 350 , "Radio Select" )
279
- radio .change_var_window_values .update ({"free_form" : False , "toggle" : False , "radio" : True , "var_to_change" : "w_audiocodec" , "line_one" : "Current value of w_audiocodec:" , "line_two" : vars_system .init_vars ["w_audiocodec" ]})
280
- radio .change_var_window_values .update ({"radio_list" : [("Windows Media Audio 9.2" , "Windows Media Audio 9.2" ), ("Windows Media Audio 9.2 Lossless" , "Windows Media Audio 9.2 Lossless" ), ("Windows Media Audio 10 Professional" , "Windows Media Audio 10 Professional" )]})
281
- #main_window.root_window.withdraw()
282
- radio .create_change_var_window ()
306
+ main_window .new_top_level (200 , 250 , "Radio" )
307
+ main_window .master_dictionary ["top_level_window" ] = True
308
+ main_window .change_var_window_values .update ({"free_form" : False , "toggle" : False , "radio" : True , "var_to_change" : "w_audiocodec" , "line_one" : "Current value of w_audiocodec:" , "line_two" : vars_system .init_vars ["w_audiocodec" ]})
309
+ main_window .change_var_window_values .update ({"radio_list" : [("Windows Media Audio 9.2" , "Windows Media Audio 9.2" ), ("Windows Media Audio 9.2 Lossless" , "Windows Media Audio 9.2 Lossless" ), ("Windows Media Audio 10 Professional" , "Windows Media Audio 10 Professional" )]})
310
+ main_window .create_change_var_window ()
311
+
283
312
def print_radio_value ():
284
- global radio_test_window
285
313
messagebox .showinfo ("Debug" , radio_test_window .master_dictionary ["radio_ctrl" ].get ())
286
- def radio_test ():
287
- global radio_test_window
288
- radio_test_window = render_window (200 , 250 , "Test" )
289
- radio_test_window .new_button ("Dialog" , print_radio_value , grid_column = 1 )
290
- radio_test_window .new_radio_button ("Button 1" , "btn1" )
291
- radio_test_window .new_radio_button ("Button 2" , "btn2" , grid_row = 1 )
292
- radio_test_window .new_radio_button ("Button 3" , "btn3" , grid_row = 2 )
293
- radio_test_window .root_window .mainloop ()
294
314
295
315
296
316
297
317
#seperator
298
318
299
319
vars_system = init_system ()
300
320
301
- main_window = render_window (200 , 250 , "Main Window" )
321
+ main_window = change_var_window (200 , 250 , "Main Window" )
302
322
main_window .new_button ("Freeform Edit" , freeform_example , 1 , grid_columnspan = 2 )
303
- main_window .new_button ("Toggle Var" , radio_test )
323
+ main_window .new_button ("Toggle Var" , example_toggle )
304
324
main_window .new_button ("Radio Var" , radio_example , grid_column = 1 )
305
325
306
326
main_window .root_window .mainloop ()
0 commit comments