你能在 PySimpleGUI table 对象的一行内添加一个隐藏值吗?
Can you add a hidden value inside a row in PySimpleGUI table object?
我在 PySimpleGUI 中有一个 table 对象。
[sg.Table(values=data_values, headings=data_headings,
max_col_width=65,
auto_size_columns=False,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
justification='left',
enable_events=True,
col_widths=[5, 5, 5,5,5,5,5,5],
num_rows=10, key='_tracker_')]
我启用了活动。单击 table 时,我检查单击的行并根据该行中的值进行一些操作。效果不错。
我现在想让其中一个变量不可见,但我仍然想在单击该行时访问它的值。
有办法吗?我认为 HTML.
中存在类似的东西
您可以使用选项 visible_column_map
来设置要显示或不显示的列。
visible_column_map
:每列一个条目。 False 表示该列未显示。
演示代码,
import PySimpleGUI as sg
headings = ['President', 'Date of Birth']
data = [
['Ronald Reagan', 'February 6'],
['Abraham Lincoln', 'February 12'],
['George Washington', 'February 22'],
['Andrew Jackson', 'March 15'],
['Thomas Jefferson', 'April 13'],
['Harry Truman', 'May 8'],
['John F. Kennedy', 'May 29'],
['George H. W. Bush', 'June 12'],
['George W. Bush', 'July 6'],
['John Quincy Adams', 'July 11'],
['Garrett Walker', 'July 18'],
['Bill Clinton', 'August 19'],
['Jimmy Carter', 'October 1'],
['John Adams', 'October 30'],
['Theodore Roosevelt', 'October 27'],
['Frank Underwood', 'November 5'],
['Woodrow Wilson', 'December 28'],
]
sg.theme('DarkBlue3')
sg.set_options(("Courier New", 12))
layout = [
[sg.Table(data, headings=headings, visible_column_map=[True, False], justification='left', select_mode=sg.TABLE_SELECT_MODE_BROWSE, enable_events=True, key='President')],
[sg.Text('', size=(22, 1), key='Birthday')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == 'President':
index = values[event][0]
window['Birthday'].update(value=f'Birthday: {data[index][1]}')
window.close()
我在 PySimpleGUI 中有一个 table 对象。
[sg.Table(values=data_values, headings=data_headings,
max_col_width=65,
auto_size_columns=False,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
justification='left',
enable_events=True,
col_widths=[5, 5, 5,5,5,5,5,5],
num_rows=10, key='_tracker_')]
我启用了活动。单击 table 时,我检查单击的行并根据该行中的值进行一些操作。效果不错。
我现在想让其中一个变量不可见,但我仍然想在单击该行时访问它的值。
有办法吗?我认为 HTML.
中存在类似的东西您可以使用选项 visible_column_map
来设置要显示或不显示的列。
visible_column_map
:每列一个条目。 False 表示该列未显示。
演示代码,
import PySimpleGUI as sg
headings = ['President', 'Date of Birth']
data = [
['Ronald Reagan', 'February 6'],
['Abraham Lincoln', 'February 12'],
['George Washington', 'February 22'],
['Andrew Jackson', 'March 15'],
['Thomas Jefferson', 'April 13'],
['Harry Truman', 'May 8'],
['John F. Kennedy', 'May 29'],
['George H. W. Bush', 'June 12'],
['George W. Bush', 'July 6'],
['John Quincy Adams', 'July 11'],
['Garrett Walker', 'July 18'],
['Bill Clinton', 'August 19'],
['Jimmy Carter', 'October 1'],
['John Adams', 'October 30'],
['Theodore Roosevelt', 'October 27'],
['Frank Underwood', 'November 5'],
['Woodrow Wilson', 'December 28'],
]
sg.theme('DarkBlue3')
sg.set_options(("Courier New", 12))
layout = [
[sg.Table(data, headings=headings, visible_column_map=[True, False], justification='left', select_mode=sg.TABLE_SELECT_MODE_BROWSE, enable_events=True, key='President')],
[sg.Text('', size=(22, 1), key='Birthday')],
]
window = sg.Window("Title", layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == 'President':
index = values[event][0]
window['Birthday'].update(value=f'Birthday: {data[index][1]}')
window.close()