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

sg.window有哪些属性和方法

在 PySimpleGUI 中,sg.Window 是创建图形用户界面(GUI)窗口的核心类,其属性和方法支持窗口的定制化与交互逻辑实现。以下是关键属性和方法的分类说明:

核心属性

  1. 窗口标题与尺寸

    • title:窗口标题栏显示的文本(通过 sg.Window('标题') 设置)。
    • size:窗口初始尺寸,格式为 (宽度, 高度)(如 size=(400, 300))。
    • resizable:布尔值,控制窗口是否可调整大小(默认 False)。
  2. 布局与控件

    • layout:窗口内控件的排列结构,通过嵌套列表定义(如 [[sg.Text('文本'), sg.Input()]])。
    • finalize:布尔值,若为 True,窗口创建后立即渲染,允许动态修改控件(如 finalize=True)。
  3. 视觉与行为

    • no_titlebar:布尔值,移除标题栏(默认 False)。
    • icon:设置窗口图标(需提供文件路径)。
    • default_button:指定默认按钮(用户按回车时触发)。
    • font:全局字体设置(如 font=('微软雅黑', 12))。
  4. 事件与交互

    • return_keyboard_events:布尔值,若为 True,键盘按键会作为事件返回。
    • use_default_focus:布尔值,控制是否自动聚焦到第一个可交互控件。

核心方法

  1. 窗口生命周期管理

    • read(timeout=None):启动事件循环,阻塞程序直到用户交互。
      • timeout(毫秒):超时后自动返回 (None, None),避免无限阻塞。
      • 返回 (event, values) 元组:event 为触发事件(如按钮文本),values 为输入控件的值(字典形式)。
    • close():关闭窗口并释放资源。
    • hide() / un_hide():隐藏或显示窗口(多窗口管理时常用)。
  2. 动态控件操作

    • FindElement(key) / Element(key):通过控件的 key 属性获取控件对象。
    • [key] 简写:直接通过 window[key] 访问控件(如 window['-INPUT-'].update('新文本'))。
    • update():更新控件属性(如文本、颜色、可见性等)。
      • 示例:window['-BUTTON-'].update(disabled=True) 禁用按钮。
  3. 布局与窗口调整

    • layout(new_layout):动态替换窗口布局(需先调用 finalize=True)。
    • refresh():强制重绘窗口(通常在动态修改后调用)。
  4. 多窗口支持

    • read_all_windows():同时读取多个窗口的事件(返回 (window, event, values) 元组)。

示例代码

import PySimpleGUI as sg# 定义布局
layout = [[sg.Text('请输入姓名:', key='-LABEL-')],[sg.Input(key='-INPUT-')],[sg.Button('提交', key='-SUBMIT-'), sg.Button('退出', key='-EXIT-')]
]# 创建窗口
window = sg.Window('示例窗口', layout, finalize=True, size=(300, 150))# 事件循环
while True:event, values = window.read()if event == sg.WIN_CLOSED or event == '-EXIT-':breakelif event == '-SUBMIT-':name = values['-INPUT-']sg.popup(f'你好, {name}!')window['-LABEL-'].update(text='输入已提交:')  # 动态更新文本window.close()

关键点总结

  • 属性:通过构造函数参数设置(如 sizetitle),部分需配合 finalize=True 动态修改。
  • 方法read() 处理交互,update() 动态更新控件,多窗口用 read_all_windows()
  • 事件驱动:所有交互通过事件(event)触发,结合 values 获取输入数据。

通过灵活组合这些属性和方法,可以快速构建功能丰富的 GUI 应用。

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

相关文章:

  • macOS 安装 x86架构的 kali 虚拟机 - Mr
  • QPSK/BPSK在多径信道下经过LMS均衡器后的误码率曲线分析
  • 2025年常温固化型酚醛环氧涂料生产厂家权威推荐:耐高锰酸钠富辛环氧涂料订制厂家/高性能厚浆环氧涂料涂料厂商/乙烯基防水防腐涂料优质厂家精选
  • 2025年10月中国管理咨询公司评价榜:六强数据化横向对比
  • 2025年10月中国管理咨询公司实力榜:金蓝盟领衔五强横向评测
  • 2025年固定式气体报警器定做厂家权威推荐榜单:可燃气体报警仪/无线气体检测仪/便携气体检测仪源头厂家精选
  • 2025年10月精益管理咨询公司推荐:口碑排行全对比
  • 2025年10月精益管理咨询公司推荐:实力榜排名与场景指南
  • 机器学习之随机森林
  • 2025年10月精益管理咨询公司推荐:实力榜对比与选型指南
  • 制药行业MES系统功能设计
  • 2025年10月生产现场管理咨询公司排名:五强实战能力评价
  • 2025年10月精益降本咨询公司推荐:口碑榜对比指南
  • 2025年福祉座椅厂家权威推荐榜单:轮椅升降机/轮椅升降平台/福祉车源头厂家精选
  • AIGC与智能体平台 Coze Dify N8N公开课
  • 【MCU】【STM32】基于STM32CubeMX+CLion的STM32开发环境 - 实践
  • CRMEB标准版订单删除的业务逻辑与数据完整性保障
  • SM4加密数据
  • 2025年真空带式过滤机批发厂家权威推荐榜单:真空带式脱水机定制厂家/全自动真空带式过滤机厂商/脱硫真空皮带脱水机实力厂家精选
  • 夜莺监控设计思考(四)关于机器那些事儿
  • [大模型学习笔记]-基于transformer架构训练小说续写模型(2)
  • 2025年10月北京工装设计公司排名榜:资质服务与用户口碑全面解析
  • 2025年10月北京工装设计公司推荐榜:五家优质企业综合对比分析
  • ORA-1555 发生在使用 DBLINK 的 SELECT 语句中
  • 108. 将来不再需要程序员,而是需要会驾驭AI的程序员---大胆设想---未来的编程开发---自然语言的逻辑性---设定prompt标准
  • 2025年哈尔滨首饰回收机构权威推荐:南京衣服回收平台/杭州茶壶回收服务商/合肥花盆回收机构/福州杂志回收平台精选
  • 2025年10月北京工装设计公司权威排行:从用户反馈到项目案例全面解析
  • MATLAB实现直流电法和大地电磁法的一维正演计算
  • 2025年10月上海装修公司推荐榜:五家口碑排行深度解析
  • 记一次 Kubebuilder Operator 开发中的 CRD 注解超限问题