You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:10:56