如何在PySimpleGUI Multiline组件中实现行数超出时自动滚动?
在PySimpleGUI的Multiline组件中实现内容超出行数自动启用滚动
PySimpleGUI的Multiline组件默认就支持内容超出行数时自动显示滚动条,针对你给出的sg.Multiline(size=(42, 5))代码,按以下方式处理即可:
- 基础自动滚动:当输入内容的行数超过
size参数中设定的行数(这里是5行)时,组件会自动弹出垂直滚动条,无需额外配置。 - 自动滚动到最新内容:如果希望输入新内容时自动滚动到末尾,添加
autoscroll=True参数:sg.Multiline(size=(42, 5), autoscroll=True) - 强制显示滚动条:若需要始终显示滚动条(即使内容未超出可视区域),可设置
scrollbar=True参数:sg.Multiline(size=(42, 5), scrollbar=True)
完整测试示例
import PySimpleGUI as sg # 构建界面布局 layout = [ [sg.Multiline(size=(42, 5), key='-MULTILINE-', autoscroll=True)], [sg.Button('添加测试内容'), sg.Button('关闭窗口')] ] window = sg.Window('Multiline自动滚动演示', layout) while True: event, values = window.read() if event == sg.WIN_CLOSED or event == '关闭窗口': break if event == '添加测试内容': # 每次添加一行内容,触发滚动测试 line_count = window['-MULTILINE-'].get().count('\n') + 1 window['-MULTILINE-'].print(f'测试内容第 {line_count} 行') window.close()
内容的提问来源于stack exchange,提问作者RayEagle
相关产品推荐
相关产品推荐

