New checklist item (have upgraded to newest release of PySimpleGUI from PyPI added to the log a GitHub issue GUI), fixed problem with some versions of tkinter not supporting justification of listbboxes

This commit is contained in:
PySimpleGUI 2022-07-23 19:11:34 -04:00
parent fde83bb0cb
commit af7aa7ab9f
1 changed files with 22 additions and 11 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
version = __version__ = "4.60.1.62 Unreleased" version = __version__ = "4.60.1.63 Unreleased"
_change_log = """ _change_log = """
Changelog since 4.60.0 released to PyPI on 8-May-2022 Changelog since 4.60.0 released to PyPI on 8-May-2022
@ -157,7 +157,9 @@ _change_log = """
4.60.1.62 4.60.1.62
Removed the "NOT avoilable on the MAC" from file_types parameter in the docstrings Removed the "NOT avoilable on the MAC" from file_types parameter in the docstrings
Use Withdraw to hide window during creation Use Withdraw to hide window during creation
4.60.1.63
Addition of checklist item when logging new issue to GitHub - upgraded to latest version of PySimpleGUI on PyPI
Listbox justification parameter found to not be implemented on some early verions of tkinter so had to protect this situation. This new feature crached on the Pi for example
""" """
__version__ = version.split()[0] # For PEP 396 and PEP 345 __version__ = version.split()[0] # For PEP 396 and PEP 345
@ -2634,7 +2636,7 @@ class Listbox(Element):
:type s: (int, int) | (None, None) | int :type s: (int, int) | (None, None) | int
:param disabled: set disable state for element :param disabled: set disable state for element
:type disabled: (bool) :type disabled: (bool)
:param justification: justification for items in listbox. Valid choices - left, right, center. Default is left :param justification: justification for items in listbox. Valid choices - left, right, center. Default is left. NOTE - on some older versions of tkinter, not available
:type justification: (str) :type justification: (str)
:param auto_size_text: True if element should be the same size as the contents :param auto_size_text: True if element should be the same size as the contents
:type auto_size_text: (bool) :type auto_size_text: (bool)
@ -15975,8 +15977,13 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
element.TKStringVar = tk.StringVar() element.TKStringVar = tk.StringVar()
element.TKListbox = element.Widget = tk.Listbox(element_frame, height=element_size[1], width=width, element.TKListbox = element.Widget = tk.Listbox(element_frame, height=element_size[1], width=width,
selectmode=element.SelectMode, font=font, exportselection=False, selectmode=element.SelectMode, font=font, exportselection=False)
justify=justification) # On OLD versions of tkinter the justify option isn't available
try:
element.Widget.config(justify=justification)
except:
pass
element.Widget.config(highlightthickness=0) element.Widget.config(highlightthickness=0)
for index, item in enumerate(element.Values): for index, item in enumerate(element.Values):
element.TKListbox.insert(tk.END, item) element.TKListbox.insert(tk.END, item)
@ -17223,10 +17230,12 @@ def _convert_window_to_tk(window):
master.title(window.Title) master.title(window.Title)
InitializeResults(window) InitializeResults(window)
PackFormIntoFrame(window, master, window) PackFormIntoFrame(window, master, window)
window.TKroot.configure(padx=window.Margins[0], pady=window.Margins[1]) window.TKroot.configure(padx=window.Margins[0], pady=window.Margins[1])
# ....................................... DONE creating and laying out window ..........................# # ....................................... DONE creating and laying out window ..........................#
if window._Size != (None, None): if window._Size != (None, None):
master.geometry("%sx%s" % (window._Size[0], window._Size[1])) master.geometry("%sx%s" % (window._Size[0], window._Size[1]))
@ -23810,7 +23819,7 @@ GREEN_CHECK_BASE64 = b'iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAJV0lEQVR4n
def _github_issue_post_make_markdown(issue_type, operating_system, os_ver, psg_port, psg_ver, gui_ver, python_ver, def _github_issue_post_make_markdown(issue_type, operating_system, os_ver, psg_port, psg_ver, gui_ver, python_ver,
python_exp, prog_exp, used_gui, gui_notes, python_exp, prog_exp, used_gui, gui_notes,
cb_docs, cb_demos, cb_demo_port, cb_readme_other, cb_command_line, cb_issues, cb_github, cb_docs, cb_demos, cb_demo_port, cb_readme_other, cb_command_line, cb_issues, cb_latest_pypi, cb_github,
detailed_desc, code, project_details, where_found): detailed_desc, code, project_details, where_found):
body = \ body = \
""" """
@ -23873,6 +23882,7 @@ These items may solve your problem. Please check those you've done by changing -
- [{}] For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi) - [{}] For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)
- [{}] Run your program outside of your debugger (from a command line) - [{}] Run your program outside of your debugger (from a command line)
- [{}] Searched through Issues (open and closed) to see if already reported Issues.PySimpleGUI.org - [{}] Searched through Issues (open and closed) to see if already reported Issues.PySimpleGUI.org
- [{}] Upgraded to the latest official release of PySimpleGUI on PyPI
- [{}] Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released - [{}] Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released
## Detailed Description ## Detailed Description
@ -23893,7 +23903,7 @@ These items may solve your problem. Please check those you've done by changing -
""".format(python_exp, prog_exp, used_gui, gui_notes, """.format(python_exp, prog_exp, used_gui, gui_notes,
cb_docs, cb_demos, cb_demo_port, cb_readme_other, cb_command_line, cb_issues, cb_github, cb_docs, cb_demos, cb_demo_port, cb_readme_other, cb_command_line, cb_issues, cb_latest_pypi, cb_github,
detailed_desc, code if len(code) > 10 else '# Paste your code here') detailed_desc, code if len(code) > 10 else '# Paste your code here')
@ -24077,11 +24087,12 @@ def main_open_github_issue():
[In(size=(25, 1), k='-EXP NOTES-', expand_x=True)]] [In(size=(25, 1), k='-EXP NOTES-', expand_x=True)]]
checklist = (('Searched main docs for your problem', 'www.PySimpleGUI.org'), checklist = (('Searched main docs for your problem', 'www.PySimpleGUI.org'),
('Looked for Demo Programs that are similar to your goal.\nIt is recommend you use the Demo Browser!', 'http://Demos.PySimpleGUI.org'), ('Looked for Demo Programs that are similar to your goal.\nIt is recommend you use the Demo Browser!', 'https://Demos.PySimpleGUI.org'),
('If not tkinter - looked for Demo Programs for specific port', ''), ('If not tkinter - looked for Demo Programs for specific port', ''),
('For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)', ''), ('For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)', ''),
('Run your program outside of your debugger (from a command line)', ''), ('Run your program outside of your debugger (from a command line)', ''),
('Searched through Issues (open and closed) to see if already reported', 'http://Issues.PySimpleGUI.org'), ('Searched through Issues (open and closed) to see if already reported', 'https://Issues.PySimpleGUI.org'),
('Upgraded to the latest official release of PySimpleGUI on PyPI', 'https://Upgrading.PySimpleGUI.org'),
('Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released.', '')) ('Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released.', ''))
checklist_col1 = Col([[CB(c, k=('-CB-', i)), T(t, k='-T{}-'.format(i), enable_events=True)] for i, (c, t) in enumerate(checklist[:4])], k='-C FRAME CBs1-') checklist_col1 = Col([[CB(c, k=('-CB-', i)), T(t, k='-T{}-'.format(i), enable_events=True)] for i, (c, t) in enumerate(checklist[:4])], k='-C FRAME CBs1-')
@ -24216,7 +24227,7 @@ def main_open_github_issue():
continue continue
cb_dict = {'cb_docs': checkboxes[0], 'cb_demos': checkboxes[1], 'cb_demo_port': checkboxes[2], 'cb_readme_other': checkboxes[3], cb_dict = {'cb_docs': checkboxes[0], 'cb_demos': checkboxes[1], 'cb_demo_port': checkboxes[2], 'cb_readme_other': checkboxes[3],
'cb_command_line': checkboxes[4], 'cb_issues': checkboxes[5], 'cb_github': checkboxes[6], 'detailed_desc': values['-ML DETAILS-'], 'cb_command_line': checkboxes[4], 'cb_issues': checkboxes[5], 'cb_latest_pypi': checkboxes[6], 'cb_github': checkboxes[7], 'detailed_desc': values['-ML DETAILS-'],
'code': values['-ML CODE-'], 'code': values['-ML CODE-'],
'project_details': values['-ML PROJECT DETAILS-'].rstrip(), 'project_details': values['-ML PROJECT DETAILS-'].rstrip(),
'where_found': values['-ML FOUND PSG-']} 'where_found': values['-ML FOUND PSG-']}
@ -25426,4 +25437,4 @@ if __name__ == '__main__':
exit(0) exit(0)
main() main()
exit(0) exit(0)
#21e7efb0287a1b3fe9daae4380280884f2eaf158bc1cf68e4f9b7413a850c3eae6f3e95a0153672d5c35447d5b1a59956e258827b1f6028365e593d31d2acd9ef7d154898ee1a5d6fe7c31a60bfca5f7bf4b95f6c1f945445fb4d2a627aa91ce0cf810713853289489097683183652d898ae789ce388294c2b606c767cf8fecd1ec37a83669144afa3874ef2e035f6e5c62d578e50c4bfc22ca5fceb75323c563b5a1a0b479006494856783de99f20ee6a6c67da9e503804f0a662fc2ef850afdc1292ba27de2bc816573a6efec5492b705e83ccbe07223f577a2bdc69a428473726e23deb5a0f330e86724abf56a4d3d8bc8d80ca711b9e58b0a71951162ea6b26dfda4bef8852263645bc2c3a2bf07418a47144fbff5776d13bc376aebd129c047b6308bed8b8d52f215784c3187fb233bec3dc6833fba293164feeb75ff5044f19d0d443b154b5183e66c880c6986e9131a188678e2af68adc192fafd22dd1b0bb9ab6a95975ae79b0373a2321fdef15ca406a9263ddfa996bfdee6ed92172132b2088c36c09ca1961a6eacd79963c424a425ab0e7661f3536da1f769ef12e98a9370bd73e5a407bd365eb5cefdf91f3f73cece49e4ce108026cdd4d3d70e3c7304c86dc953089cb2a35ce406f74d72591c0c7ecc3963823858fa8f79f133c3cce7e8a6a1e859f1147ffbbf2d2da1472ba52a896817a31e73fec16552fb8a #7b071603b37f5083ab668f5f5d465049799d8ef6890245388ad9c06fa5cb3c2f5be59ee74d6b74adffa822c42ceaafd05dfc52ffe2dc336712e41062fddcbbb99ec33a32ad9716814eb5f6db2059d3ea716d2d255052302418f284462759442988c9d288fee75524b18b43f22d5ec37c66975c5f2e7979b22337b7c9e05edf2d41954827e8a138edc7e74e4bb7a09815624b44f6d4b7a90d7c2319b998e5e7bbae292d1478240d603e1bae91b44d1e683cc6a5897b99716490e191b3aa183d7ccf754238f896c0cfd894aae61f610d522da730fe1703c76c7646dfaeefdb31f1cec1f8a65e44b7bf19bca897542c558170387c332a312edf86d8ca509f509b15289226660c1860135483ef60243dfc0660728cea769c0a25b06440c4bd3e5b9545506225257c32f84511db4516367727b789c9727f2f0092cfcf14f3ae55279fd2170c9c2712859394bd7be04726c7be0197dc6039427d871d96a2a8b86d21cbf73d69534498ec330c975bd79d0e24bb58404ab5448e0bc18447f916477ee1f67e59da42c202496fdcee1e8b5cffbd53d21216f73bb910e10e906bd4342e59293c224e56ab65d759ca83b1893c0ccb821bd2dbc5e6a4193975123cdb787e99fe824b60486464e65eb3dab02d55a7f246b928f643c743358c39af3c017d9250eeec97835a1ac7b94bbb7336bc5905c2ec8189b9513326510db4465ddba5d4cf65