在PySimpleGUI中更改选项卡标题颜色



我使用PySimpleGUI来构建一个选项卡组。在某些事件中,我想给"页眉"上色。具有特定背景颜色的单个选项卡,以提醒用户该选项卡中正在发生某事。我该如何做到这一点?

贫乏的代码:

import PySimpleGUI as sg
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)
while True:
event, values = window.read()

if event == "-CLOSE-":
break

elif event == "-TEST-":
# set tab color
...
window.close()

在tab对象的属性中戳了一下之后,我尝试了window["-TAB-"].BackgroundColor = "#..."window["-TAB-"].widget.configure(background="#..."),两者似乎都不做任何事情。

我也满足于改变标题中的文本颜色,但我也不知道如何实现这一点。

看起来你不能为特定的制表符设置颜色,但是可以为所有的制表符设置颜色。

import PySimpleGUI as sg
tabgroup_layout = [
[sg.Tab("Tab 1", [[sg.Text("This is the tab 1")]], key="-TAB1-"),
sg.Tab("Tab 2", [[sg.Text("This is the tab 2")]], key="-TAB2-")]
]
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)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, "-CLOSE-"):
break
elif event == "-TEST-":
tabgroup = window['-TABGROUP-']
style, style_name = tabgroup.Style, tabgroup.StyleName + '.Tab'
style.map(style_name, background=[("selected", "blue")])
# style.map(style_name, foreground=[("selected", foreground)])
# style.configure(style_name, background=background, foreground=foreground, focuscolor=focuscolor)
window.close()

最新更新