Skip to content

Commit b8b7fc1

Browse files
committed
Added filtering to make searching easier. Changed list from Table to Listbox
1 parent 3bccbe9 commit b8b7fc1

2 files changed

Lines changed: 21 additions & 13 deletions

File tree

psgfiglet/psgfiglet.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import os
1010
import pyfiglet
1111

12-
version = '6.0.1'
12+
version = '6.1'
1313
__version__ = version.split()[0]
1414

1515
"""
@@ -19,6 +19,8 @@
1919
6.0 9-Apr-2026 Moved to LGPL3 license
2020
Added "favorites" feature
2121
6.0.1 10-Apr-2026 Made Font list expand/contract with window. Sort favorites.
22+
6.0.2 15-Jun-2026 Added filtering of the font list to make finding fonts much easier.
23+
6.1 17-Jun-2026 Preparing for PyPI release
2224
"""
2325

2426

@@ -127,17 +129,17 @@ def make_window():
127129
favorite_fonts = [' ']
128130
sg.theme_background_color(sg.theme_input_background_color())
129131
sg.theme_text_element_background_color(sg.theme_input_background_color())
130-
column_left = [[sg.Table(headings=['Font Name'], values=fonts, key='-FONT-LIST-',
131-
col_widths=[40], num_rows=30, enable_events=True, expand_y=True), sg.VerticalSeparator(pad=((5, 5), 0))]]
132-
try:
133-
mline_input = sg.Multiline('PySimpleGUI', size=(40, 3), key='-TEXT-TO-SHOW-', no_scrollbar=True, enable_events=True, focus=True)
134-
except Exception as e:
135-
mline_input = sg.Multiline('PySimpleGUI', size=(40, 3), key='-TEXT-TO-SHOW-', enable_events=True, focus=True)
132+
# column_left = [[sg.Table(headings=['Font Name'], values=fonts, key='-FONT-LIST-',
133+
# col_widths=[40], num_rows=30, enable_events=True, expand_y=True), sg.VerticalSeparator(pad=((5, 5), 0))],
134+
# [sg.Input(s=20, k='-FILTER-')],[ sg.T('Filter')]]
135+
column_left = [[sg.Listbox(values=fonts, key='-FONT-LIST-',s=(30,30), justification='r', enable_events=True, expand_y=True, expand_x=True), sg.VerticalSeparator(pad=((5, 5), 0))],
136+
[sg.Input(s=20, k='-FILTER-', enable_events=True)],[ sg.T('Filter', justification='c', k='-FILTER-')]]
137+
mline_input = sg.Multiline('PySimpleGUI', size=(40, 3), key='-TEXT-TO-SHOW-', enable_events=True, focus=True)
136138

137139
column_right = [[sg.Combo(favorite_fonts, default_value=favorite_fonts[0], readonly=True, enable_events=True, k='-FAVORITES-', size=(max([len(f) for f in favorite_fonts]),30)), sg.Text("Font Name:", size=(10, 1)), sg.Input(selected_font, size=(12, 1), key='-FONT-NAME-'), sg.B('Add to favorites', k='-ADD TO FAVORITES-'), sg.B('Clear favorites', k='-CLEAR FAVORITES-')],
138140
[sg.Text("Text:", size=(10, 1)), mline_input, sg.T('Font size for display below'),
139141
sg.Combo(list(range(4, 20)), 12, enable_events=True, k='-FONT-SIZE-')],
140-
[sg.Multiline(size=(LINE_LENGTH, 20), key='-OUTPUT-', border_width=0, font=MULTILINE_FONT, expand_x=True, expand_y=True, pad=(40, 40), )],
142+
[sg.Multiline(size=(LINE_LENGTH, 20), key='-OUTPUT-', border_width=0, font=MULTILINE_FONT, expand_x=True, expand_y=True, pad=(40, 40), write_only=True,)],
141143
[sg.B('Copy to Clipboard'), sg.B('Change Theme')], ]
142144

143145
layout = [[sg.Column(column_left, expand_y=True, expand_x=False), sg.Column(column_right, expand_x=False, expand_y=False, k='-COL R-')],
@@ -181,17 +183,18 @@ def main():
181183

182184
while True: # Event Loop
183185
event, values = window.read()
184-
# print(event,values)
186+
print(event,values)
185187
if event == sg.WIN_CLOSED or event == 'Exit':
186188
break
187189
if event == '-FONT-SIZE-':
188190
MULTILINE_FONT = (MULTILINE_FONT[0], values['-FONT-SIZE-'])
189191
window['-OUTPUT-'].update(font=MULTILINE_FONT)
190192
window.refresh()
191193
elif event == '-FONT-LIST-':
192-
# first one is the selected, no multi-select allowed.
193-
selected_font = fonts[values['-FONT-LIST-'][0]]
194+
#first one is the selected, no multi-select allowed.
195+
selected_font = values['-FONT-LIST-'][0]
194196
window['-FONT-NAME-'].update(selected_font)
197+
195198
elif event == 'Edit Me':
196199
sg.execute_editor(__file__)
197200
elif event == 'File Location':
@@ -225,7 +228,12 @@ def main():
225228
favorite_fonts = []
226229
sg.user_settings_set_entry('-favorites-', favorite_fonts)
227230
window['-FAVORITES-'].update(values=favorite_fonts)
228-
231+
elif event == '-FILTER-':
232+
if values[event] == '':
233+
font_list = fonts
234+
else:
235+
font_list = list(font for font in fonts if values[event] in font)
236+
window['-FONT-LIST-'].update(font_list)
229237
window.close()
230238

231239
if __name__ == '__main__':

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def readme():
1111

1212
setuptools.setup(
1313
name="psgfiglet",
14-
version="6.0",
14+
version="6.1",
1515
author="PySimpleGUI",
1616
install_requires=["PySimpleGUI","pyfiglet"],
1717
description="Create Figlets using a PySimpleGUI GUI and pyfiglet. A PySimpleGUI Demo Program.",

0 commit comments

Comments
 (0)