当前位置: 首页 > 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.gsyq.cn/news/33746.html

相关文章:

  • QPSK/BPSK在多径信道下经过LMS均衡器后的误码率曲线分析
  • 2025年10月中国管理咨询公司实力榜:金蓝盟领衔五强横向评测
  • 2025年10月精益管理咨询公司推荐:实力榜排名与场景指南
  • 制药行业MES系统功能设计
  • 2025年10月精益降本咨询公司推荐:口碑榜对比指南
  • 2025年福祉座椅厂家权威推荐榜单:轮椅升降机/轮椅升降平台/福祉车源头厂家精选
  • AIGC与智能体平台 Coze Dify N8N公开课
  • SM4加密数据
  • 2025年真空带式过滤机批发厂家权威推荐榜单:真空带式脱水机定制厂家/全自动真空带式过滤机厂商/脱硫真空皮带脱水机实力厂家精选
  • 2025年10月北京工装设计公司推荐榜:五家优质企业综合对比分析
  • 2025年10月上海装修公司榜单:五家口碑对比排行
  • (三)从分层架构到数据湖仓架构系列:数据仓库分层之贴源层和数据仓库层设计
  • 问大模型CAN的co-attention
  • 2025年10月美白精华产品推荐榜:口碑与成分深度评测
  • 2025 年地漏厂家最新推荐榜:涵盖铜 / 防臭 / 抗菌 / 磁悬浮 / 防溢水等类型,精选实力企业助力消费者精准选购
  • PBS, 以太坊的棘刺雕猴 - 教程
  • 2025年10月网上兼职赚钱正规平台推荐:知名平台榜单全收录
  • 2025年10月网上兼职赚钱正规平台推荐:市场报告与对比列表
  • 【转载】孪生网络(Siamese Network)
  • nvlink和nvswitch的区别
  • 别再用手绘架构图了!ArchiMate才是架构师的标准乐高
  • 2025年10月祛斑产品推荐榜:权威评测五强对比
  • 2025年10月精华液对比榜:从传明酸到多肽的真实排行
  • Linux 中为什么要提出伪终端这个概念呢?shell 等命令行程序不可以直接从显示器和键盘读取数据吗?
  • DevSecOps在中国市场迎来爆发式增长:技术融合驱动软件安全新范式
  • 基于MATLAB的遗传算法优化支持向量机实现
  • E - Hit and Away
  • 数组与字典解决方案第三十讲:如何将记录集的数据记入数组 - 详解
  • 2025年知识管理系统推荐:几款融合AI能力的智能知识库全面对比
  • ️为什么越来越多企业从Web转向桌面端?兰亭妙微解读QT界面的复兴