Linux下PySimpleGUI调试窗口覆盖主窗口位置Bug问询
Linux下PySimpleGUI调试窗口层级异常问题求助
在Linux系统中发现PySimpleGUI的一个特殊Bug,疑似与GitHub上编号#5309的Linux窗口跳动问题相关。当前脚本启动时立即通过sg.Print(keep_on_top=False)输出内容到调试窗口,初期运行正常,后续输出不会导致调试窗口突然弹出。同时启用了PySimpleGUI的窗口位置记忆功能,但调试窗口始终默认居中显示(希望能修改其初始位置)。
主窗口不同位置的复现场景
基于sg.Window(location)功能,测试了以下几种主窗口位置场景:
- 场景1:主窗口位于屏幕中心附近,主窗口在调试窗口上方,表现正常。
- 场景2:主窗口位于调试窗口左侧,主窗口在调试窗口上方,表现正常。
- 场景3:主窗口位于调试窗口右侧且覆盖调试窗口的比例≤20%,主窗口在调试窗口上方,表现正常。
- 场景4:主窗口位于调试窗口右侧且覆盖调试窗口的比例>20%,调试窗口会显示在主窗口上方,表现异常。
屏幕中心偏右存在一条触发线,当主窗口越过该线时会导致调试窗口弹出。虽可通过将主窗口固定在左侧解决,但希望保持主窗口在右侧显示,请问是否可以通过硬编码让调试窗口始终处于主窗口下方?
补充现象
当触发场景4时,主窗口的任务栏图标会闪烁,推测是主窗口失去焦点导致。
复现代码
import PySimpleGUI as sg debug = sg.Print debug('debug', keep_on_top=False) layout = [[sg.Text('window', size=(80,40))]] window = sg.Window('', layout, enable_close_attempted_event=True, location=sg.user_settings_get_entry('-location-', (None, None))) while True: event, values = window.read(timeout=100) debug('hi') if event == sg.WINDOW_CLOSE_ATTEMPTED_EVENT: sg.user_settings_set_entry('-location-', window.current_location()) break window.close()
内容的提问来源于stack exchange,提问作者Nanovolt
相关产品推荐
相关产品推荐

