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

PySimpleGUI报错AttributeError: tuple对象无ParentContainer属性求助

PySimpleGUI布局错误排查与修正

你遇到的AttributeError: 'tuple' object has no attribute 'ParentContainer'是因为定义元素组时错误使用逗号分隔,导致变量变成了元组,而PySimpleGUI的布局要求每行是元素组成的列表,而非元组。比如tm_number = sg.Text(...), sg.Input(...)这种写法会创建元组,而非列表,当把元组放到布局中时,PySimpleGUI会把它当成单个元素处理,从而引发错误。

修正后的完整代码

import PySimpleGUI as sg

# 用列表包裹每行元素,去掉多余逗号
tm_number = [sg.Text("Technical Manual Number:", font=(24,24)),
             sg.Input(key='tm_number', font=(24,24), size=(48,1))]
review = [sg.Text("Type of Review:", font=(24,24)),
          sg.Input(key='review', font=(24,24), size=(12,1))]
pages = [sg.Text("Number of Pages: ", font=(24,24)),
         sg.Input(key='pages', font=(24,24), size=(6,1))]
submission_date = [sg.Text("Date of Submission: ", font=(24,24)),
                   sg.Input(key='submission_date', font=(24,24), size=(12,1))]
writer = [sg.Text("Writer's Name: ", font=(24,24)),
          sg.Input(key='writer', font=(24,24), size=(24,1))]

col1 = [review, submission_date]
col2 = [writer, pages]

layout = [[sg.Text("Writer's Submission Form", font=(48,48))],
          tm_number,
          [sg.Column(col1), sg.Column(col2)],
          [sg.Push(), sg.Button("SUBMIT FOR REVIEW", size=(24,1), font=24)]]

window = sg.Window("Technical Manual Engineering Review (TMER)", layout)

event, values = window.read()

window.close()

关键修改说明

  • 所有元素组改用列表包裹,去掉末尾逗号,避免生成元组。
  • 调整size参数:原size=(48,24)会导致输入框异常高大,改为size=(48,1)符合常规UI尺寸。
  • 简化列布局:col1 = [review, submission_date]无需额外嵌套[review],因为review本身就是一行元素的列表。
  • 添加sg.Push()实现提交按钮居右,满足“底部右下角放置提交按钮”的需求。
  • 修正window.close为window.close(),正确调用窗口关闭方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:32:49