如何设置PySimpleGUI Table首列左对齐、其余列居中?
PySimpleGUI Table实现首列左对齐、其余列居中的方案
可以实现这个需求。PySimpleGUI的Table控件在tkinter后端基于ttk.Treeview实现,我们可以直接操作底层的Treeview控件来为不同列设置单独的对齐方式。
修改后的代码示例
import PySimpleGUI as psg psg.set_options(font=("Arial Bold", 14)) toprow = ['S.No.', 'Name', 'Age', 'Marks'] rows = [[1, 'Rajeev', 23, 78], [2, 'Rajani', 21, 66], [3, 'Rahul', 22, 60], [4, 'Robin', 20, 75]] tbl1 = psg.Table(values=rows, headings=toprow, auto_size_columns=True, display_row_numbers=False, key='-TABLE-', selected_row_colors='red on yellow', enable_events=True, expand_x=True, expand_y=True, enable_click_events=True) layout = [[tbl1]] window = psg.Window("Table Demo", layout, size=(715, 200), resizable=True) # 获取底层ttk.Treeview控件 treeview = window['-TABLE-'].Widget # 为不同列设置对齐方式 for col_idx, col in enumerate(toprow): if col_idx == 0: # 首列左对齐('w'对应west方向) treeview.heading(col, anchor='w') treeview.column(col, anchor='w') else: # 其余列居中对齐 treeview.heading(col, anchor='center') treeview.column(col, anchor='center') while True: event, values = window.read() print("event:", event, "values:", values) if event == psg.WIN_CLOSED: break if '+CLICKED+' in event: psg.popup("You clicked row:{} Column: {}".format(event[2][0], event[2][1])) window.close()
关键说明
- 通过
window['-TABLE-'].Widget获取PySimpleGUI Table对应的tkinter Treeview实例。 treeview.heading()用于设置表头的对齐方式,treeview.column()用于设置表格内容的对齐方式。- 对齐参数:
'w'代表左对齐,'center'代表居中,'e'代表右对齐。
内容的提问来源于stack exchange,提问作者Kankan2000
相关产品推荐
相关产品推荐

