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

PySimpleGUI程序中sg.Text()无法用 实现换行问题求助

问题解决方法

你的问题出在布局结构上:现在的循环是把所有sg.Text组件放在**同一个布局行(外层列表的第一个子列表)**里,PySimpleGUI会把它们横向排列,而且单个sg.Text里的\n不会触发换行(因为组件本身是行内元素)。

有两种简单的修复方式:

方式1:每个乘法式单独占一行

把每个式子对应的sg.Text放在单独的子列表里,PySimpleGUI会自动纵向排列每行内容:

if event == 'TABUAR':
    maximo = int(values[1]) + 1
    numero = int(values[0])
    # 生成每行一个Text的布局
    layout = []
    for i in range(1, maximo):
        layout.append([sg.Text(f'{i}x{numero} = {i*numero}')])
    layout.append([sg.Button('SAIR')])  # 最后添加退出按钮
    window = sg.Window('TABUADA', layout)

方式2:用单个Text组件包含所有换行内容

把所有乘法式拼接成一个带\n的字符串,放在一个sg.Text组件中,同时让组件自动适配内容:

if event == 'TABUAR':
    maximo = int(values[1]) + 1
    numero = int(values[0])
    # 拼接所有式子成一个带换行的字符串
    tabuada_text = '\n'.join([f'{i}x{numero} = {i*numero}' for i in range(1, maximo)])
    layout = [
        [sg.Text(tabuada_text, auto_size_text=True)],
        [sg.Button('SAIR')]
    ]
    window = sg.Window('TABUADA', layout)

两种方式都能实现每行显示一个乘法式的效果,第一种更灵活(后续可给每行添加其他交互元素),第二种代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:17:08