More Form removal. New CloseNonBlocking method instead of CloseNonBlockingForm
This commit is contained in:
parent
828274af3f
commit
eb72181182
|
@ -1829,9 +1829,9 @@ class Table(Element):
|
|||
|
||||
|
||||
# ------------------------------------------------------------------------- #
|
||||
# FlexForm CLASS #
|
||||
# Window CLASS #
|
||||
# ------------------------------------------------------------------------- #
|
||||
class FlexForm:
|
||||
class Window:
|
||||
'''
|
||||
Display a user defined for and return the filled in data
|
||||
'''
|
||||
|
@ -2124,7 +2124,7 @@ class FlexForm:
|
|||
self.RootNeedsDestroying = True
|
||||
return None
|
||||
|
||||
def CloseNonBlockingForm(self):
|
||||
def CloseNonBlocking(self):
|
||||
if self.TKrootDestroyed:
|
||||
return
|
||||
try:
|
||||
|
@ -2132,6 +2132,8 @@ class FlexForm:
|
|||
_my_windows.Decrement()
|
||||
except: pass
|
||||
|
||||
CloseNonBlockingForm = CloseNonBlocking
|
||||
|
||||
def OnClosingCallback(self):
|
||||
return
|
||||
|
||||
|
@ -2151,6 +2153,9 @@ class FlexForm:
|
|||
# except:
|
||||
# pass
|
||||
|
||||
FlexForm = Window
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------- #
|
||||
# UberForm CLASS #
|
||||
# Used to make forms into TABS (it's trick) #
|
||||
|
|
|
@ -236,7 +236,7 @@ The architecture of some programs works better with button callbacks instead of
|
|||
|
||||
# Layout the design of the GUI
|
||||
layout = [[sg.Text('Please click a button', auto_size_text=True)],
|
||||
[sg.ReadFormButton('1'), sg.ReadFormButton('2'), sg.Quit()]]
|
||||
[sg.ReadButton('1'), sg.ReadButton('2'), sg.Quit()]]
|
||||
|
||||
# Show the Window to the user
|
||||
window = sg.Window('Button callback example').Layout(layout)
|
||||
|
@ -289,7 +289,7 @@ This recipe implements a remote control interface for a robot. There are 4 dire
|
|||
if button == 'Quit' or values is None:
|
||||
break
|
||||
|
||||
window.CloseNonBlockingForm() # Don't forget to close your window!
|
||||
window.CloseNonBlocking() # Don't forget to close your window!
|
||||
|
||||
---------
|
||||
|
||||
|
@ -499,7 +499,7 @@ Perhaps you don't want all the statistics that the EasyProgressMeter provides an
|
|||
# update bar with loop value +1 so that bar eventually reaches the maximum
|
||||
window.FindElement('progbar').UpdateBar(i + 1)
|
||||
# done with loop... need to destroy the window as it's still open
|
||||
window.CloseNonBlockingForm()
|
||||
window.CloseNonBlocking()
|
||||
|
||||
|
||||
----
|
||||
|
@ -650,7 +650,7 @@ Just like you can draw on a tkinter widget, you can also draw on a Graph Element
|
|||
|
||||
layout = [
|
||||
[sg.Graph(canvas_size=(400, 400), graph_bottom_left=(0,0), graph_top_right=(400, 400), background_color='red', key='graph')],
|
||||
[sg.T('Change circle color to:'), sg.ReadFormButton('Red'), sg.ReadFormButton('Blue'), sg.ReadFormButton('Move')]
|
||||
[sg.T('Change circle color to:'), sg.ReadButton('Red'), sg.ReadButton('Blue'), sg.ReadButton('Move')]
|
||||
]
|
||||
|
||||
window = sg.Window('Graph test')
|
||||
|
@ -820,10 +820,10 @@ In other GUI frameworks this program would be most likely "event driven" with ca
|
|||
layout = [[sg.T('User:', pad=((3,0),0)), sg.OptionMenu(values = ('User 1', 'User 2'), size=(20,1)), sg.T('0', size=(8,1))],
|
||||
[sg.T('Customer:', pad=((3,0),0)), sg.OptionMenu(values=('Customer 1', 'Customer 2'), size=(20,1)), sg.T('1', size=(8,1))],
|
||||
[sg.T('Notes:', pad=((3,0),0)), sg.In(size=(44,1), background_color='white', text_color='black')],
|
||||
[sg.ReadFormButton('Start', button_color=('white', 'black'), key='Start'),
|
||||
sg.ReadFormButton('Stop', button_color=('white', 'black'), key='Stop'),
|
||||
sg.ReadFormButton('Reset', button_color=('white', 'firebrick3'), key='Reset'),
|
||||
sg.ReadFormButton('Submit', button_color=('white', 'springgreen4'), key='Submit')]
|
||||
[sg.ReadButton('Start', button_color=('white', 'black'), key='Start'),
|
||||
sg.ReadButton('Stop', button_color=('white', 'black'), key='Stop'),
|
||||
sg.ReadButton('Reset', button_color=('white', 'firebrick3'), key='Reset'),
|
||||
sg.ReadButton('Submit', button_color=('white', 'springgreen4'), key='Submit')]
|
||||
]
|
||||
|
||||
window = sg.Window("Time Tracker", default_element_size=(12,1), text_justification='r', auto_size_text=False, auto_size_buttons=False,
|
||||
|
@ -883,7 +883,7 @@ Use the upper half to generate your hash code. Then paste it into the code in t
|
|||
1. Choose a password
|
||||
2. Generate a hash code for your chosen password by running program and entering 'gui' as the password
|
||||
3. Type password into the GUI
|
||||
4. Copy and paste hash code form GUI into variable named login_password_hash
|
||||
4. Copy and paste hash code Window GUI into variable named login_password_hash
|
||||
5. Run program again and test your login!
|
||||
'''
|
||||
|
||||
|
@ -1104,7 +1104,7 @@ Much of the code is handling the button states in a fancy way. It could be much
|
|||
# --------- After loop --------
|
||||
|
||||
# Broke out of main loop. Close the window.
|
||||
window.CloseNonBlockingForm()
|
||||
window.CloseNonBlocking()
|
||||
|
||||
## Desktop Floating Widget - CPU Utilization
|
||||
|
||||
|
@ -1119,12 +1119,12 @@ The spinner changes the number of seconds between reads. Note that you will get
|
|||
import PySimpleGUI as sg
|
||||
import psutil
|
||||
|
||||
# ---------------- Create Form ----------------
|
||||
# ---------------- Create Window ----------------
|
||||
sg.ChangeLookAndFeel('Black')
|
||||
layout = [[sg.Text('')],
|
||||
[sg.Text('', size=(8, 2), font=('Helvetica', 20), justification='center', key='text')],
|
||||
[sg.Exit(button_color=('white', 'firebrick4'), pad=((15,0), 0)), sg.Spin([x+1 for x in range(10)], 1, key='spin')]]
|
||||
# Layout the rows of the window and perform a read. Indicate the window is non-blocking!
|
||||
[sg.Exit(button_color=('white', 'firebrick4'), pad=((15,0), 0)), sg.Spin([x+1 for x in range(10)], 1, key='spin')]]
|
||||
|
||||
window = sg.Window('Running Timer', no_titlebar=True, auto_size_buttons=False, keep_on_top=True, grab_anywhere=True).Layout(layout)
|
||||
|
||||
|
||||
|
@ -1148,7 +1148,7 @@ The spinner changes the number of seconds between reads. Note that you will get
|
|||
window.FindElement('text').Update(f'CPU {cpu_percent:02.0f}%')
|
||||
|
||||
# Broke out of main loop. Close the window.
|
||||
window.CloseNonBlockingForm()
|
||||
window.CloseNonBlocking()
|
||||
|
||||
## Menus
|
||||
|
||||
|
|
Loading…
Reference in New Issue