PySimpleGUI窗口启动时默认选中非首个标签页如何消除切换延迟?
解决PySimpleGUI默认选中指定标签页无延迟的问题
问题出在你是窗口渲染完成后再切换标签,所以会出现先显示第一个标签再切换的延迟。正确的做法是在创建TabGroup组件时就指定默认选中的标签页,这样窗口启动时直接加载目标标签,完全不会有延迟。
具体有两种实现方式:
- 通过标签标题指定(
selected_title参数)
假设你的TabGroup布局里,目标标签页的标题是"加密"(对应key-ENCR_TAB-),定义TabGroup时加上selected_title参数:
layout = [ [sg.TabGroup( [ [sg.Tab('标签1', tab1_layout), sg.Tab('加密', tab2_layout, key='-ENCR_TAB-')] ], selected_title='加密' # 直接指定默认选中的标签标题 )] ] window = sg.Window("foobar", layout, margins=(2, 2), finalize=True) # 不需要再调用window.Element('-ENCR_TAB-').Select()
- 通过索引指定(
selected_index参数)
标签页的索引从0开始计数,第二个标签页索引是1,所以可以这样写:
layout = [ [sg.TabGroup( [ [sg.Tab('标签1', tab1_layout), sg.Tab('加密', tab2_layout, key='-ENCR_TAB-')] ], selected_index=1 # 索引1对应第二个标签页 )] ] window = sg.Window("foobar", layout, margins=(2, 2), finalize=True)
这样修改后,窗口启动时会直接显示你指定的标签页,完全不会有之前的切换延迟。
内容的提问来源于stack exchange,提问作者Jiri B
相关产品推荐
相关产品推荐

