You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySimpleGUI编写GUI报'tuple' object is not callable错误求助

'tuple' object is not callable 报错修复(PySimpleGUI图片查看器)

错误原因

核心报错由布局写法错误直接触发,代码中共有3处会影响运行的问题:

  1. 元组被错误当成可调用对象:定义file_list_column时写了(sg.Text(...), sg.In(...), sg.FolderBrowse(),)(sg.Listbox(...))结构,Python会把括号前的元组识别为函数,尝试传入后面的Listbox对象执行,元组本身不支持调用,直接抛出你遇到的'tuple' object is not callable错误。PySimpleGUI布局要求同一层级的元素用列表[]包裹,行、列嵌套都通过列表嵌套实现,不能用元组直接拼接后加括号跟元素。image_viewer_column的定义也存在同类元组叠写问题。
  2. 类名拼写错误:sg.Colmn应为sg.Column,sg.VSeperator应为sg.VSeparator,拼写错误会触发属性不存在的后续报错。
  3. 方法调用遗漏括号:末尾window.close是类方法,必须加括号写成window.close()才会真正执行窗口关闭逻辑。

修正后可运行代码

import PySimpleGUI as sg
import os.path

# 左侧文件列表列:用列表按行包裹元素
file_list_column = [
    [sg.Text("Image Folder"), sg.In(size=(25,1), enable_events=True, key="-FOLDER-"), sg.FolderBrowse()],
    [sg.Listbox(values=[], enable_events=True, size=(40,20), key="-FILE LIST-")]
]

# 右侧图片预览列:用列表按行包裹元素
image_viewer_column = [
    [sg.Text("Choose an image from the list on the left:")],
    [sg.Text(size=(40,1), key="-TOUT-")],
    [sg.Image(key="-IMAGE-")]
]

# 全局布局:修正类名拼写错误
layout= [
    [sg.Column(file_list_column),sg.VSeparator(),sg.Column(image_viewer_column)]
]

window = sg.Window("Image Viewer", layout)

while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break
    # 可在此处补充文件夹选择、图片加载的事件处理逻辑

# 补全方法调用括号
window.close()

补充说明

当前代码只搭建了基础UI框架,还未实现文件夹选择后刷新文件列表、点击列表项加载预览图片的业务逻辑,后续可在事件循环内补充对应逻辑即可。

内容的提问来源于stack exchange,提问作者NordinWaziry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:48:14