2018-10-15 20:07:23 +00:00
#!/usr/bin/env python
import sys
if sys . version_info [ 0 ] > = 3 :
import PySimpleGUI as sg
2018-10-30 16:20:29 +00:00
from tkinter import Tk
2018-10-15 20:07:23 +00:00
else :
import PySimpleGUI27 as sg
2018-10-30 16:20:29 +00:00
from Tkinter import Tk
2018-10-06 05:05:25 +00:00
desc_text = """
Text ( text
size = ( None , None )
auto_size_text = None
click_submits = None
relief = None
font = None
text_color = None
background_color = None
justification = None
pad = None
key = None
2018-10-06 18:40:55 +00:00
tooltip = None )
2018-10-08 04:40:11 +00:00
2018-10-06 18:40:55 +00:00
Shortcuts : Txt , T
"""
2018-10-06 05:05:25 +00:00
desc_inputtext = """
InputText ( default_text = ' '
size = ( None , None )
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 05:05:25 +00:00
auto_size_text = None
password_char = ' '
justification = None
background_color = None
text_color = None
font = None
tooltip = None
do_not_clear = False
key = None
focus = False
pad = None )
2018-10-08 04:40:11 +00:00
2018-10-06 18:40:55 +00:00
Shortcuts : In , Input
2018-10-06 05:05:25 +00:00
"""
2018-10-06 18:31:59 +00:00
desc_inputcombo = """
InputCombo ( values
default_value = None
size = ( None , None )
auto_size_text = None
background_color = None
text_color = None
change_submits = False
disabled = False
key = None
pad = None
tooltip = None )
2018-10-08 04:40:11 +00:00
2018-10-06 18:40:55 +00:00
Shortcuts : Combo , DropDown , Drop
2018-10-06 18:31:59 +00:00
"""
desc_inputoptionmenu = """
InputOptionMenu ( values
default_value = None
size = ( None , None )
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
auto_size_text = None
background_color = None
text_color = None
key = None
pad = None
tooltip = None )
2018-10-08 04:40:11 +00:00
2018-10-06 18:40:55 +00:00
Shortcuts : OptionMenu
2018-10-06 18:31:59 +00:00
"""
desc_listbox = """
Listbox ( values
default_values = None
select_mode = None
change_submits = False
bind_return_key = False
size = ( None , None )
auto_size_text = None
font = None
background_color = None
text_color = None
key = None
pad = None
tooltip = None )
"""
2018-10-06 05:05:25 +00:00
desc_checkbox = """
2018-10-06 18:31:59 +00:00
CheckBox ( text
2018-10-06 05:05:25 +00:00
default = False
size = ( None , None )
auto_size_text = None
font = None
background_color = None
text_color = None
change_submits = False
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 05:05:25 +00:00
key = None
pad = None
tooltip = None )
2018-10-06 18:40:55 +00:00
Shortcuts : CB , CBox , Check
2018-10-06 05:05:25 +00:00
"""
2018-10-06 18:31:59 +00:00
desc_radio = """
Radio ( text
group_id
default = False
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
size = ( None , None )
auto_size_text = None
background_color = None
text_color = None
font = None
key = None
pad = None
tooltip = None )
"""
desc_spin = """
Spin ( values
initial_value = None
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
change_submits = False
size = ( None , None )
auto_size_text = None
font = None
background_color = None
text_color = None
key = None
pad = None
tooltip = None )
"""
desc_multiline = """
MultiLine ( default_text = ' '
enter_submits = False
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
autoscroll = False
size = ( None , None )
auto_size_text = None
background_color = None
text_color = None
do_not_clear = False
key = None
focus = False
pad = None
tooltip = None )
"""
desc_output = """
Output ( size = ( None , None )
background_color = None
text_color = None
pad = None
font = None
tooltip = None
key = None )
"""
desc_button = """
Button ( button_text = ' '
button_type = BUTTON_TYPE_CLOSES_WIN
target = ( None , None )
tooltip = None
file_types = ( ( " ALL Files " , " *.* " ) , )
initial_folder = None
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
image_filename = None
image_size = ( None , None )
image_subsample = None
border_width = None
size = ( None , None )
auto_size_button = None
button_color = None
default_value = None
font = None
bind_return_key = False
focus = False
pad = None
key = None )
"""
desc_progressbar = """
ProgressBar ( max_value
orientation = None
size = ( None , None )
auto_size_text = None
bar_color = ( None , None )
style = None
border_width = None
relief = None
key = None
pad = None )
"""
desc_image = """
Image ( filename = None
data = None
size = ( None , None )
pad = None
key = None
tooltip = None )
"""
desc_canvas = """
Canvas ( canvas = None
background_color = None
size = ( None , None )
pad = None
key = None
tooltip = None )
"""
desc_graph = """
Graph ( canvas_size
graph_bottom_left
graph_top_right
background_color = None
pad = None
key = None
tooltip = None )
"""
desc_frame = """
Frame ( title
layout
title_color = None
background_color = None
title_location = None
relief = DEFAULT_FRAME_RELIEF
size = ( None , None )
font = None
pad = None
border_width = None
key = None
tooltip = None )
"""
desc_tab = """
Tab ( title
layout
title_color = None
background_color = None
font = None
pad = None
disabled = False
border_width = None
key = None
tooltip = None )
"""
desc_tabgroup = """
TabGroup ( layout
tab_location = None
title_color = None
selected_title_color = None
background_color = None
font = None
change_submits = False
pad = None
border_width = None
theme = None
key = None
tooltip = None )
"""
desc_slider = """
Slider ( range = ( None , None )
default_value = None
resolution = None
orientation = None
border_width = None
relief = None
change_submits = False
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-06 18:31:59 +00:00
size = ( None , None )
font = None
background_color = None
text_color = None
key = None
pad = None
tooltip = None )
"""
2018-10-08 04:40:11 +00:00
desc_spin = """
Spin ( values
initial_value = None
2018-10-15 20:07:23 +00:00
disabled = False
2018-10-08 04:40:11 +00:00
change_submits = False
size = ( None , None )
auto_size_text = None
font = None
background_color = None
text_color = None
key = None
pad = None
tooltip = None )
"""
2018-10-16 02:53:14 +00:00
desc_tree = """
Tree ( data = None ,
headings = None ,
visible_column_map = None ,
col_widths = None ,
col0_width = 10 ,
def_col_width = 10 ,
auto_size_columns = True ,
max_col_width = 20 ,
select_mode = None ,
font = None ,
justification = ' right ' ,
text_color = None ,
background_color = None ,
num_rows = None ,
pad = None ,
key = None ,
tooltip = None ) :
"""
2018-10-08 04:40:11 +00:00
2018-10-06 18:31:59 +00:00
desc_column = """
Column ( layout
background_color = None
size = ( None , None )
pad = None
scrollable = False
key = None )
"""
desc_table = """
Table ( values
headings = None
visible_column_map = None
col_widths = None
def_col_width = 10
auto_size_columns = True
max_col_width = 20
select_mode = None
display_row_numbers = False
scrollable = None
font = None
justification = ' right '
text_color = None
background_color = None
size = ( None , None )
pad = None
key = None
tooltip = None )
"""
desc_window = """
Window ( title
default_element_size = DEFAULT_ELEMENT_SIZE
default_button_element_size = ( None , None )
auto_size_text = None
auto_size_buttons = None
location = ( None , None )
button_color = None
font = None
progress_bar_color = ( None , None )
background_color = None
border_depth = None
auto_close = False
auto_close_duration = DEFAULT_AUTOCLOSE_TIME
icon = DEFAULT_WINDOW_ICON
force_toplevel = False
return_keyboard_events = False
use_default_focus = True
text_justification = None
no_titlebar = False
grab_anywhere = False
2018-10-29 00:01:03 +00:00
keep_on_top = False
resizable = False )
"""
desc_window_methods = """
Layout ( rows )
Call to set the window layout . Must be called prior to Read . Most likely " chained " in line with the Window creation .
Finalize ( )
Call to force a window to go through the final stages of initialization . This will cause the tkinter resources to be allocated so that they can then be modified .
Read ( )
Read the Window ' s input values and button clicks in a blocking-fashion
Returns event , values
ReadNonBlocking ( )
Read the Window ' s input values and button clicks but without blocking. It will immediately return.
Refresh ( )
Cause changes to the window to be displayed on the screen . Normally not needed unless the changes are immediately required or if it ' s going to be a while before another call to Read.
SetIcon ( icon )
Sets the window ' s icon that will be shown on the titlebar.
Fill ( values_dict )
Populates the windows fields with the values shown in the dictionary .
FindElement ( key )
Rerturns the Element that has a matching key . If the key is not found , an Error Element is returned so that the program will not crash should the user try to perform an " update " . A Popup message will be shown
SaveToDisk ( filename )
Saves the window ' s values to disk
LoadFromDisk ( filename )
Fills in a window ' s fields based on previously saved file
GetScreenDimensions ( )
Returns the size ( w , h ) of the screen in pixels
Move ( x , y )
Move window to ( x , y ) position on the screen
Minimize ( )
Sends the window to the taskbar
CloseNonBlocking ( )
Closes a non - blocking window
Disable ( )
Stops a window from responding until Enable is called
Enable ( )
Re - enables a previously disabled window
Hide ( )
Completely hides a window , including removing from the taskbar
UnHide ( )
Restores a window hidden using Hide
Disappear ( )
Makes a window disappear while leaving the icon on the taskbar
Reappear ( )
Makes a window reappear that was previously made to disappear using Disappear ( )
SetAlpha ( alpha )
Sets the window ' s transparency. 0 is completely transparent. 1 is fully visible, normal
2018-10-06 18:31:59 +00:00
"""
2018-10-29 00:01:03 +00:00
2018-10-16 02:53:14 +00:00
desc_menu = """
Menu ( menu_definition
background_color = None
size = ( None , None )
tearoff = True
pad = None
key = None )
"""
2018-10-06 18:40:55 +00:00
desc_button_types = """
There are multiple button types / names to choose from
2018-10-29 00:01:03 +00:00
CloseButton = CButton = SimpleButton
Button = ReadFormButton = ReadButton = RButton
2018-10-06 18:40:55 +00:00
RealtimeButton
DummyButton
FolderBrowse
FileBrowse
FilesBrowse
FileSaveAs = SaveAs
CalendarButton
ColorChooserButton
Shortcuts - Normal buttons with predefined text
Save , Open , OK , Ok , Cancel , Quit , Exit , Yes , No , Help
"""
2018-10-16 02:53:14 +00:00
desc_popup = """
Popup ( button_color = None
background_color = None
text_color = None
button_type = POPUP_BUTTONS_OK
auto_close = False
auto_close_duration = None
non_blocking = False
icon = DEFAULT_WINDOW_ICON
line_width = None
font = None
no_titlebar = False
grab_anywhere = False
keep_on_top = False
location = ( None , None ) )
"""
desc_popups = """
PopupScrolled
PopupGetFolder
PopupGetFile
PopupGetText
POopup
PopupNoButtons
PopupNonBlocking = PopupNoWait
PopupQuick
PopupNoTitleBar = PopupNoFrame = PopupNoBorder = PopupAnnoying
PopupAutoClose = PopupTimed
PopupError
PopupCancel
PopupOK
PopupOKCancel
PopupYesNo
"""
desc_one_line_progress_meter = """
OneLineProgressMeter ( title
current_value
max_value
key
* args
orientation = None
bar_color = ( None , None )
button_color = None
size = DEFAULT_PROGRESS_BAR_SIZE
border_width = None
grab_anywhere = False ) :
"""
2018-10-06 18:31:59 +00:00
element_list = ( ' Window ' ,
' Text ' ,
' InputText ' ,
' CheckBox ' ,
' RadioButton ' ,
' Listbox ' ,
' InputCombo ' ,
' Slider ' ,
2018-10-08 04:40:11 +00:00
' Spinner ' ,
2018-10-06 18:31:59 +00:00
' Multiline ' ,
' Output ' ,
' ProgressBar ' ,
' OptionMenu ' ,
' Menu ' ,
' Frame ' ,
' Column ' ,
' Graph ' ,
' Image ' ,
' Table ' ,
' Tab ' ,
2018-10-06 18:40:55 +00:00
' TabGroup ' ,
' Button Types ' )
2018-10-06 18:31:59 +00:00
2018-10-30 16:20:29 +00:00
descriptions = { ' Window ' : desc_window , ' Text ' : desc_text , ' InputText ' : desc_inputtext , ' Checkbox ' : desc_checkbox ,
' Radio ' : desc_radio , ' Listbox ' : desc_listbox , ' Slider ' : desc_slider , ' Spinner ' : desc_spin , ' Multiline ' : desc_multiline ,
2018-10-08 04:40:11 +00:00
' Output ' : desc_output , ' ProgressBar ' : desc_progressbar , ' OptionMenu ' : desc_inputoptionmenu ,
2018-10-30 16:20:29 +00:00
' Combo ' : desc_inputcombo , ' Menu ' : desc_menu , ' Frame ' : desc_frame , ' Column ' : desc_column ,
2018-10-16 02:53:14 +00:00
' Graph ' : desc_graph , ' Image ' : desc_image , ' Table ' : desc_table , ' Tree ' : desc_tree , ' Tab ' : desc_tab ,
2018-10-30 16:20:29 +00:00
' TabGroup ' : desc_tabgroup , ' Button ' : desc_button , ' Button Types ' : desc_button_types ,
' Popup ' : desc_popup , ' Popups ' : desc_popups , ' One Line Prog Meter ' : desc_one_line_progress_meter }
2018-10-08 04:40:11 +00:00
tab_text = [ [ sg . Column ( [ [ sg . T ( ' This is sample text ' ) ] , [ sg . Text ( desc_text , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_input = [ [ sg . Column ( [ [ sg . Input ( size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_inputtext , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_checkbox = [ [ sg . Column ( [ [ sg . Checkbox ( ' Checkbox ' , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_checkbox , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_radio = [ [ sg . Column ( [ [ sg . Radio ( ' Radio Button ' , group_id = 1 , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_radio , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_listbox = [ [ sg . Column ( [ [ sg . Listbox ( values = [ 1 , 2 , 3 , 4 ] , size = ( 15 , 4 ) ) ] , [ sg . Text ( desc_listbox , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_slider = [ [ sg . Column ( [ [ sg . Slider ( ( 1 , 100 ) , orientation = ' h ' , size = ( 15 , 15 ) ) ] , [ sg . Text ( desc_slider , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_spinner = [ [ sg . Column ( [ [ sg . Spin ( ( 1 , 2 , 3 , 4 , 5 ) , initial_value = 1 , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_spin , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_multiline = [ [ sg . Column ( [ [ sg . Multiline ( size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_multiline , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_output = [ [ sg . Column ( [ [ sg . Text ( desc_output , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_progressbar = [ [ sg . Column ( [ [ sg . Text ( desc_progressbar , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
tab_optionmenu = [ [ sg . Column ( [ [ sg . OptionMenu ( [ 1 , 2 , 3 , 4 , 5 ] , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_inputoptionmenu , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
2018-10-29 00:01:03 +00:00
tab_combo = [ [ sg . Column ( [ [ sg . Combo ( [ 1 , 2 , 3 , 4 , 5 ] , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_inputcombo , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
2018-10-08 04:40:11 +00:00
tab_frame = [ [ sg . Column ( [ [ sg . Frame ( ' Frame ' , [ [ sg . T ( ' ' ) ] ] , size = ( 15 , 1 ) ) ] , [ sg . Text ( desc_frame , font = ( ' Consolas 12 ' ) ) ] ] ) ] ]
2018-10-15 20:07:23 +00:00
tab_column = [ [ sg . Text ( desc_column , font = ( ' Consolas 12 ' ) ) ] ]
2018-10-08 04:40:11 +00:00
tab_graph = [ [ sg . Text ( desc_graph , font = ( ' Consolas 12 ' ) ) ] ]
tab_tab = [ [ sg . Text ( desc_tab , font = ( ' Consolas 12 ' ) ) ] ]
tab_tabgroup = [ [ sg . Text ( desc_tabgroup , font = ( ' Consolas 12 ' ) ) ] ]
tab_image = [ [ sg . Text ( desc_image , font = ( ' Consolas 12 ' ) ) ] ]
tab_table = [ [ sg . Text ( desc_table , font = ( ' Consolas 12 ' ) ) ] ]
2018-10-16 02:53:14 +00:00
tab_tree = [ [ sg . Text ( desc_tree , font = ( ' Consolas 12 ' ) ) ] ]
tab_menu = [ [ sg . Text ( desc_menu , font = ( ' Consolas 12 ' ) ) ] ]
2018-10-29 00:01:03 +00:00
tab_button = [ [ sg . Text ( desc_button , font = ( ' Consolas 12 ' ) ) ] ]
2018-10-16 02:53:14 +00:00
tab_button_types = [ [ sg . Text ( desc_button_types , font = ( ' Consolas 12 ' ) ) ] ]
tab_popup = [ [ sg . Text ( desc_popup , font = ( ' Consolas 12 ' ) ) ] ]
tab_popups = [ [ sg . Text ( desc_popups , font = ( ' Consolas 12 ' ) ) ] ]
tab_one_line_prog_meter = [ [ sg . Text ( desc_one_line_progress_meter , font = ( ' Consolas 12 ' ) ) ] ]
2018-10-29 00:01:03 +00:00
tab_window = [ [ sg . TabGroup ( [ [ sg . Tab ( ' Parms ' , [ [ sg . Text ( desc_window , font = ( ' Consolas 12 ' ) ) ] ] ) ,
sg . Tab ( ' Methods ' , [ [ sg . Column ( [ [ sg . Text ( desc_window_methods ) ] ] , size = ( 500 , 500 ) , scrollable = True , ) ] ] ) ] ] ) ] ]
2018-10-08 04:40:11 +00:00
layout = [ [ sg . TabGroup ( [ [ sg . Tab ( ' Window ' , tab_window ) ,
2018-10-15 20:07:23 +00:00
sg . Tab ( ' Text ' , tab_text ) ,
sg . Tab ( ' InputText ' , tab_input ) ,
sg . Tab ( ' Checkbox ' , tab_checkbox ) ,
sg . Tab ( ' Radio ' , tab_radio ) ,
sg . Tab ( ' Listbox ' , tab_listbox ) ,
sg . Tab ( ' Slider ' , tab_slider ) ,
sg . Tab ( ' Spinner ' , tab_spinner ) ,
sg . Tab ( ' Multiline ' , tab_multiline ) ,
sg . Tab ( ' OptionMenu ' , tab_optionmenu ) ,
sg . Tab ( ' Combo ' , tab_combo ) ,
sg . Tab ( ' Image ' , tab_image ) ,
2018-10-16 02:53:14 +00:00
sg . Tab ( ' Output ' , tab_output ) ,
2018-10-08 04:40:11 +00:00
sg . Tab ( ' Table ' , tab_table ) ,
2018-10-16 02:53:14 +00:00
sg . Tab ( ' Tree ' , tab_tree ) ,
2018-10-15 20:07:23 +00:00
sg . Tab ( ' Graph ' , tab_graph ) ,
2018-10-16 02:53:14 +00:00
sg . Tab ( ' ProgressBar ' , tab_progressbar ) ,
2018-10-15 20:07:23 +00:00
sg . Tab ( ' Frame ' , tab_frame ) ,
sg . Tab ( ' Column ' , tab_column ) ,
sg . Tab ( ' Tab ' , tab_tab ) ,
sg . Tab ( ' TabGroup ' , tab_tabgroup ) ,
2018-10-16 02:53:14 +00:00
sg . Tab ( ' Menu ' , tab_menu ) ,
2018-10-29 00:01:03 +00:00
sg . Tab ( ' Button ' , tab_button ) ,
2018-10-16 02:53:14 +00:00
sg . Tab ( ' Button Types ' , tab_button_types ) ,
sg . Tab ( ' Popup ' , tab_popup ) ,
sg . Tab ( ' Popups ' , tab_popups ) ,
sg . Tab ( ' One Line Prog Meter ' , tab_one_line_prog_meter ) ,
2018-10-30 16:20:29 +00:00
] ] , tab_location = ' lefttop ' , title_color = ' blue ' , selected_title_color = ' red ' , key = ' _TABS_ ' ) ] ,
[ sg . Button ( ' Copy ' ) ] ]
2018-10-08 04:40:11 +00:00
# layout = [[sg.Text('The PySimpleGUI SDK Quick Reference Guide', font='Any 15', relief=sg.RELIEF_RAISED)],
# [sg.Listbox(values=element_list, size=(15, len(element_list) + 2), key='_in_', change_submits=True,
# font=('Consolas 12')),
# sg.Text(desc_text, size=(55, 25), font=('Consolas 13'), text_color='darkblue', key='_out_')]]
2018-10-06 18:48:16 +00:00
window = sg . Window ( ' PySimpleGUI SDK Quick Reference ' ,
2018-10-29 00:01:03 +00:00
font = ' Consolas 12 ' ,
) . Layout ( layout )
2018-10-06 05:05:25 +00:00
while True :
2018-10-15 20:07:23 +00:00
event , values = window . Read ( )
if event is None or event == ' Exit ' :
2018-10-06 05:05:25 +00:00
break
2018-10-30 16:20:29 +00:00
elif event == ' Methods ' :
2018-10-29 00:01:03 +00:00
sg . PopupScrolled ( desc_window_methods , size = ( 50 , 20 ) )
2018-10-30 16:20:29 +00:00
elif event == ' Copy ' :
tab = values [ ' _TABS_ ' ]
r = Tk ( )
r . withdraw ( )
r . clipboard_clear ( )
r . clipboard_append ( descriptions [ tab ] )
r . update ( ) # now it stays on the clipboard after the window is closed
r . destroy ( )
2018-10-29 00:01:03 +00:00
# element = values['_in_'][0]
# try:
# desc = descriptions[element]
# except:
# desc = ''
# window.FindElement('_out_').Update(desc)
2018-10-30 16:20:29 +00:00
# print(button, values)