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

如何在PySimpleGUI中更改滚动条颜色(Dark主题示例)

修改PySimpleGUI Dark主题中Table组件的滚动条颜色

要把Dark主题里Table的绿色滚动条改成深灰色,核心是修改主题的滚动条配色参数,或者直接操作底层tkinter组件。下面给你两种易懂的实现方式:

方法一:自定义主题(推荐,全局生效)

直接基于Dark主题的配置创建新主题,替换滚动条相关的颜色值:

import PySimpleGUI as psg

# 复制Dark主题的配置,修改滚动条颜色为深灰色(#333333)
psg.theme_add_new('Dark-CustomScroll', {
    'BACKGROUND': '#2B2B2B',
    'TEXT': '#FFFFFF',
    'INPUT': '#505050',
    'TEXT_INPUT': '#FFFFFF',
    'SCROLL': '#333333',  # 滚动条滑块颜色
    'BUTTON': ('#FFFFFF', '#474747'),
    'PROGRESS': ('#01826B', '#D0D0D0'),
    'BORDER': 1, 'SLIDER_DEPTH': 0, 'PROGRESS_DEPTH': 0,
    'SCROLLBAR_BACKGROUND': '#2B2B2B',  # 滚动条轨道背景色
    'SCROLLBAR_COLOR': '#333333'         # 滚动条滑块颜色
})

# 加载自定义主题
psg.theme('Dark-CustomScroll')
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,
   justification='center', 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)

while True:
   event, values = window.read()
   print("event:", event, "values:", values)
   if event == psg.WIN_CLOSED:
      break
   if '+CLICKED+' in event:
      psg.popup("你点击了行:{} 列: {}".format(event[2][0], event[2][1]))

window.close()

关键说明:

  • SCROLL和SCROLLBAR_COLOR控制滚动条滑块的颜色,这里设为深灰色#333333,你可以根据需求调整成其他色值
  • SCROLLBAR_BACKGROUND是滚动条轨道的背景色,和Dark主题的窗口背景#2B2B2B保持一致,视觉更统一

方法二:直接修改tkinter组件(仅针对单个Table)

如果只想修改当前Table的滚动条,不影响其他组件,可以直接获取Table对应的tkinter滚动条对象,修改其颜色:

import PySimpleGUI as psg

psg.theme('Dark')
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,
   justification='center', 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)

# 获取Table的tkinter组件,修改滚动条颜色
table_widget = window['-TABLE-'].Widget
# 修改垂直滚动条
v_scrollbar = table_widget.yview_scrollbar
v_scrollbar.config(troughcolor='#2B2B2B', bg='#333333', activebackground='#333333')
# 如果有水平滚动条,也可以修改
h_scrollbar = table_widget.xview_scrollbar
h_scrollbar.config(troughcolor='#2B2B2B', bg='#333333', activebackground='#333333')

while True:
   event, values = window.read()
   print("event:", event, "values:", values)
   if event == psg.WIN_CLOSED:
      break
   if '+CLICKED+' in event:
      psg.popup("你点击了行:{} 列: {}".format(event[2][0], event[2][1]))

window.close()

关键说明:

  • 通过window['-TABLE-'].Widget获取Table的tkinter底层组件
  • 用config方法修改滚动条的troughcolor(轨道背景)、bg(滑块常态颜色)、activebackground(滑块点击时颜色)

内容的提问来源于stack exchange,提问作者Kankan2000

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:30:17