当前位置: 首页 > news >正文

sg: window对象 常用方法

在 PySimpleGUI 中,window 对象除了 .get().update() 方法外,还提供了许多其他方法来控制窗口的行为和交互。以下是一些常用的方法:


1. 窗口生命周期管理

  • .close()
    关闭窗口并释放资源。

    window.close()
    
  • .finalize()
    在窗口显示前强制完成布局初始化(通常用于动态更新后)。

    window.finalize()
    
  • .hide() / .un_hide()
    隐藏或显示窗口(不关闭)。

    window.hide()
    window.un_hide()
    
  • .disappear() / .reappear()
    类似 .hide().un_hide(),但可能更高效。


2. 事件循环控制

  • .read(timeout=None, timeout_key='__TIMEOUT__')
    读取事件,可选超时设置(毫秒)。

    event, values = window.read(timeout=1000)  # 1秒超时
    
  • .perform_long_operation(func, callback)
    在后台线程运行函数,完成后触发回调。


3. 元素操作

  • .find_element(key)
    通过键(key)获取窗口中的元素对象。

    element = window.find_element('-INPUT-')
    
  • .extend_layout(container, layout)
    动态扩展布局(如向列或框架添加新元素)。

    window.extend_layout(window['-COLUMN-'], [[sg.Text('New text')]])
    
  • .bring_to_front()
    将窗口置顶显示。


4. 状态与属性

  • .set_title(title)
    修改窗口标题。

    window.set_title('新标题')
    
  • .get_screen_size()
    获取屏幕分辨率。

    screen_width, screen_height = window.get_screen_size()
    
  • .current_location()
    获取窗口当前坐标(左上角)。

    x, y = window.current_location()
    
  • .move(x, y)
    移动窗口到指定坐标。

    window.move(100, 100)
    

5. 键盘/鼠标控制

  • .bind() / .unbind()
    绑定或解绑键盘快捷键。

    window.bind('<Control-s>', '_SAVE_')  # 绑定 Ctrl+S
    
  • .set_cursor(cursor='arrow')
    设置鼠标光标样式(如 'arrow', 'wait', 'hand')。


6. 其他实用方法

  • .start_thread(func, *args, **kwargs)
    在后台线程运行函数(避免界面卡死)。

    window.start_thread(lambda: print('Running in thread'))
    
  • .save_to_disk(filename) / .load_from_disk(filename)
    保存或加载窗口布局到文件(实验性功能)。

  • .refresh()
    强制重绘窗口(解决某些显示问题)。


示例代码

import PySimpleGUI as sglayout = [[sg.Input(key='-INPUT-')], [sg.Button('清空')]]
window = sg.Window('示例', layout)while True:event, values = window.read()if event == sg.WIN_CLOSED:breakelif event == '清空':window['-INPUT-'].update("")  # 清空输入框window.set_title('已清空')    # 修改标题window.move(200, 200)        # 移动窗口window.close()

注意事项

  • 部分方法(如 .extend_layout())需要 PySimpleGUI 版本 ≥ 4.60.0。
  • 动态更新布局时,建议结合 finalize() 确保界面正确渲染。

如果需要更详细的信息,可以参考 PySimpleGUI 官方文档。

http://www.jsqmd.com/news/27170/

相关文章:

  • 2025年质量好的漂珠硅晶防火风管TOP实力厂家推荐榜
  • 2025年口碑好的排水波纹管设备厂家最新实力排行
  • 2025年比较好的立式明装风机盘管行业内口碑厂家排行榜
  • AI条形码插件制作条码脚本EAN13种标准Code交叉二五码支持Win/Mac
  • 内外网文件传输方法是什么?主要有哪些优缺点?
  • 2025年专业的运输卡车天窗厂家最新推荐权威榜
  • 2025年热门的岩棉板厂家推荐及采购参考
  • 2025年口碑好的小型齿轮泵热门厂家推荐榜单
  • 2025年靠谱的滚筒输送机TOP实力厂家推荐榜
  • 10.31博客
  • [笔记]Manacher 算法
  • 2025年评价高的闪蒸烘干机厂家最新推荐排行榜
  • 2025年质量好的绿篱修剪机TOP品牌厂家排行榜
  • 2025年短视频片头素材公司权威推荐榜单:短视频素材免费公司/短视频素材网 /带货视频素材源头公司精选
  • 2025年知名的意式极简天地铰链行业内口碑厂家排行榜
  • 2025年质量好的无尘起重机TOP实力厂家推荐榜
  • 2025年知名的无人化束带机厂家最新TOP实力排行
  • 告别命令行!一款开源跨平台的 Git 客户端!
  • 地铁上的那笔“海”风拂过的打赏
  • 2025年靠谱的侧插插入门厂家最新权威推荐排行榜
  • Java-函数式编程-实现分布式锁工具
  • 2025年智能照明系统定做厂家权威推荐榜单:智能照明控制/智能灯控十大品牌/智能家居照明源头厂家精选
  • 2025年靠谱的橱衣柜全屋五金厂家最新权威实力榜
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-31- 操作日历时间控件-上篇(详细教程) - 北京
  • 2025年评价高的WHB系列筛土机最新TOP品牌厂家排行
  • 2025年企业级制品库选型指南:国产化替代与高效协同新选择
  • 前端入门资料
  • 2025年口碑好的碳钢超微粉碎机厂家推荐及采购指南
  • keycloak~关于iframe方式对接keyclock的注意事项
  • 25.09.22