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

如何在PySimpleGUI中修改Tab标签头的颜色?

PySimpleGUI TabGroup标签头颜色修改方案

问题原因

你之前尝试直接修改sg.Tab的BackgroundColor或widget属性无效,是因为Tab的标签头属于TabGroup对应的ttk.Notebook组件管理,而非Tab自身的内容容器。需要直接操作Notebook实例来修改标签样式。

解决方案

1. 修改标签头文字颜色

直接通过Notebook的tab()方法修改foreground参数即可,无需额外配置:

import PySimpleGUI as sg
import tkinter.ttk as ttk

tabgroup_layout = [[sg.Tab("tab", [[sg.Text("something something")]], key="-TAB-")]]

mainwindow_layout = [[sg.TabGroup(tabgroup_layout, key="-TABGROUP-")],
                     [sg.Button("TEST", key="-TEST-"), sg.Button("Close", key="-CLOSE-")]]

window = sg.Window("Window", mainwindow_layout, finalize=True)

# 获取TabGroup对应的ttk.Notebook实例
notebook = window["-TABGROUP-"].widget
# 获取目标Tab的widget
tab_widget = window["-TAB-"].widget

while True:
    event, values = window.read()
    
    if event == "-CLOSE-":
        break
    
    elif event == "-TEST-":
        # 设置标签头文字为红色
        notebook.tab(tab_widget, foreground="#ff0000")
        # 可选:同时修改标签文本增强提醒
        # notebook.tab(tab_widget, text="tab (待处理)", foreground="#ff0000")

window.close()

2. 修改标签头背景色

ttk.Notebook的标签背景色需要通过自定义ttk.Style实现,部分系统主题可能限制背景色修改,可先切换到支持自定义的主题(如'DefaultNoMoreNagging'):

import PySimpleGUI as sg
import tkinter.ttk as ttk

# 切换到支持自定义标签样式的主题
sg.theme('DefaultNoMoreNagging')

tabgroup_layout = [[sg.Tab("tab", [[sg.Text("something something")]], key="-TAB-")]]

mainwindow_layout = [[sg.TabGroup(tabgroup_layout, key="-TABGROUP-")],
                     [sg.Button("TEST", key="-TEST-"), sg.Button("Close", key="-CLOSE-")]]

window = sg.Window("Window", mainwindow_layout, finalize=True)

# 获取Notebook实例和目标Tab widget
notebook = window["-TABGROUP-"].widget
tab_widget = window["-TAB-"].widget

# 创建自定义样式,设置背景色和文字色
style = ttk.Style()
style.configure('AlertTab.TNotebook.Tab', background="#ffff00", foreground="#000000")

while True:
    event, values = window.read()
    
    if event == "-CLOSE-":
        break
    
    elif event == "-TEST-":
        # 将自定义样式应用到目标标签
        notebook.tab(tab_widget, style='AlertTab.TNotebook.Tab')

window.close()

注意事项

  • 若背景色修改不生效,尝试切换其他PySimpleGUI主题(可通过sg.theme_list()查看所有主题);
  • 自定义样式时,样式名称需以.TNotebook.Tab结尾,确保Notebook能识别;
  • 可同时修改标签文本(如添加"待处理"标记)和颜色,提升提醒效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 10:35:26