【问题标题】:Can you add a hidden value inside a row in PySimpleGUI table object?您可以在 PySimpleGUI 表对象的行内添加隐藏值吗?
【发布时间】:2021-09-28 02:46:13
【问题描述】:

我在 PySimpleGUI 中有一个表格对象。

 [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_')]

我启用了事件。单击表格时,我检查单击的行并根据该行中的值执行一些操作。效果很好。

我现在想让其中一个变量不可见,但我仍然想在单击该行时访问它的值。

有没有办法做到这一点?我认为 HTML 中存在类似的东西。

【问题讨论】:

    标签: python user-interface pysimplegui


    【解决方案1】:

    您可以使用选项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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      相关资源
      最近更新 更多