更改列可见性 table pysimplegui
Change column visibility table pysimplegui
之前的一个问题询问了有关在 pysimplegui table 中隐藏列的问题。使用相同的代码,我可以更新可见地图以更改当前可见性(将它们都翻转)。我更改了更新行以包含 visible_column_map,但是更新失败了(我知道它并没有真正翻转但只是想快速示例)。有没有办法做到这一点,或者我需要两个不同的 tables?
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(visible_column_map=(False, True)
window.close()
没有更新 sg.Table
的 visible_column_map
的选项,看起来你用错误的元素 window['Birthday']
更新了它,它是 sg.Label
.
此处需要 Tkinter 代码,已添加按钮 Change
以生成更新它的事件。
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.Button('Change')],
[sg.Table(data, headings=headings, visible_column_map=[True, False],
justification='left', select_mode=sg.TABLE_SELECT_MODE_BROWSE,
enable_events=True, metadata=False, key='President')],
[sg.Text('', size=(22, 1), key='Birthday')],
]
window = sg.Window("Title", layout, finalize=True)
president = window['President']
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]}')
elif event == 'Change':
show = president.metadata = not president.metadata
displaycolumns = ['President', 'Date of Birth'] if show else ['President']
president.Widget.configure(displaycolumns=displaycolumns)
window.close()
之前的一个问题询问了有关在 pysimplegui table
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(visible_column_map=(False, True)
window.close()
没有更新 sg.Table
的 visible_column_map
的选项,看起来你用错误的元素 window['Birthday']
更新了它,它是 sg.Label
.
此处需要 Tkinter 代码,已添加按钮 Change
以生成更新它的事件。
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.Button('Change')],
[sg.Table(data, headings=headings, visible_column_map=[True, False],
justification='left', select_mode=sg.TABLE_SELECT_MODE_BROWSE,
enable_events=True, metadata=False, key='President')],
[sg.Text('', size=(22, 1), key='Birthday')],
]
window = sg.Window("Title", layout, finalize=True)
president = window['President']
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]}')
elif event == 'Change':
show = president.metadata = not president.metadata
displaycolumns = ['President', 'Date of Birth'] if show else ['President']
president.Widget.configure(displaycolumns=displaycolumns)
window.close()