window["-INPUT-"] 还有哪些属性或方法
在PySimpleGUI中,除了.update()方法外,window["-INPUT-"]等元素对象还支持以下属性和方法,按功能分类整理如下:
核心方法
- 
.get()- 功能:获取元素的当前值(如输入框内容、下拉菜单选中项等)。
 - 示例:
input_value = window["-INPUT-"].get() 
 - 
.set_focus()- 功能:将焦点设置到该元素,使用户可以直接输入或操作。
 - 示例:
window["-INPUT-"].set_focus() 
 - 
.set_tooltip(tooltip_text)- 功能:动态设置元素的工具提示文本。
 - 示例:
window["-INPUT-"].set_tooltip("请输入用户名") 
 - 
.set_size(size=(width, height))- 功能:调整元素的尺寸(宽度和高度,单位为字符或像素)。
 - 示例:
window["-INPUT-"].set_size((20, 1)) 
 - 
.expand(expand_x=True, expand_y=True)- 功能:使元素在水平或垂直方向扩展以填充可用空间。
 - 示例:
window["-INPUT-"].expand(True, False) 
 - 
.bind(bind_string, key_modifier)- 功能:绑定自定义事件(如键盘快捷键)。
 - 示例:
window["-INPUT-"].bind("<Return>", "ENTER") 
 - 
.unbind(bind_string)- 功能:解绑已绑定的事件。
 - 示例:
window["-INPUT-"].unbind("<Return>") 
 - 
.set_cursor(cursor_name)- 功能:设置元素的光标样式(如
"arrow"、"ibeam"等)。 - 示例:
window["-INPUT-"].set_cursor("ibeam") 
 - 功能:设置元素的光标样式(如
 - 
.hide_row()/.unhide_row()- 功能:隐藏或显示元素所在行的所有内容。
 - 示例:
window["-INPUT-"].hide_row() 
 - 
.visibility_changed()- 功能:处理元素可见性变化的事件(需配合
visible属性使用)。 
 - 功能:处理元素可见性变化的事件(需配合
 
关键属性
- 
visible- 控制元素是否可见(
True/False)。 - 示例:
window["-INPUT-"].visible = False 
 - 控制元素是否可见(
 - 
disabled- 禁用或启用元素(
True为禁用,False为启用)。 - 示例:
window["-INPUT-"].disabled = True 
 - 禁用或启用元素(
 - 
size- 元素尺寸(宽度、高度),可通过
set_size()动态修改。 - 示例:
window["-INPUT-"].size = (30, 2) 
 - 元素尺寸(宽度、高度),可通过
 - 
font- 字体设置(如
("Arial", 12))。 - 示例:
window["-INPUT-"].font = ("微软雅黑", 14) 
 - 字体设置(如
 - 
background_color/text_color- 背景色和文本颜色(支持颜色名称或十六进制值)。
 - 示例:
window["-INPUT-"].background_color = "#f0f0f0" 
 - 
key- 元素的唯一标识符(用于事件处理和访问)。
 - 示例:
window["-INPUT-"].key = "-INPUT-" 
 - 
metadata- 存储任意用户数据(可附加到元素上)。
 - 示例:
window["-INPUT-"].metadata = {"user_id": 123} 
 
输入框专属方法
- 
.set_cursor_to_end()- 将光标移动到输入框末尾。
 - 示例:
window["-INPUT-"].set_cursor_to_end() 
 - 
.select_text()- 选中输入框中的全部文本。
 - 示例:
window["-INPUT-"].select_text() 
 - 
.password_char- 设置密码隐藏字符(如
"*")。 - 示例:
window["-INPUT-"].password_char = "*" 
 - 设置密码隐藏字符(如
 
其他通用方法
- 
.update(value=None, disabled=None, visible=None, ...)- 更新元素的多个属性(如值、禁用状态、可见性等)。
 - 示例:
window["-INPUT-"].update("新内容", disabled=False) 
 - 
.widget- 访问底层GUI框架的原生控件(如Tkinter的
Entry对象)。 - 示例:
tk_entry = window["-INPUT-"].widget 
 - 访问底层GUI框架的原生控件(如Tkinter的
 
使用场景示例
import PySimpleGUI as sg
layout = [
    [sg.Input(key="-INPUT-", enable_events=True)],
    [sg.Button("获取值"), sg.Button("清空并禁用")]
]
window = sg.Window("示例", layout)
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    elif event == "获取值":
        print("当前值:", window["-INPUT-"].get())
    elif event == "清空并禁用":
        window["-INPUT-"].update("")  # 清空内容
        window["-INPUT-"].disabled = True  # 禁用输入
        window["-INPUT-"].set_tooltip("已禁用输入")  # 更新提示
window.close()
通过组合这些方法和属性,可以实现动态交互、状态管理、界面响应等复杂功能。具体行为可能因PySimpleGUI版本略有差异,建议参考官方文档或使用sg.main_sdk_help()查看实时API。
                    
                
                
            
        
浙公网安备 33010602011771号