pysimplegui同步滚动
时间: 2023-09-17 18:14:24 浏览: 173
PySimpleGUI_source.zip
在PySimpleGUI中,可以使用`sg.Multiline`创建一个多行文本框。如果要实现同步滚动,可以使用`sg.Multiline`的`enable_events`参数来监听滚动事件,并将滚动位置同步到其他多行文本框中。
以下是一个示例代码:
```python
import PySimpleGUI as sg
# 创建两个多行文本框
layout = [
[sg.Multiline(size=(40, 10), key='-TEXT1-', enable_events=True)],
[sg.Multiline(size=(40, 10), key='-TEXT2-', enable_events=True)],
]
# 创建窗口
window = sg.Window('Sync Scrolling', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
# 获取滚动位置
if event == '-TEXT1-':
scroll_pos = values['-TEXT1-']
# 将滚动位置同步到另一个多行文本框
window['-TEXT2-'].update(scroll_to=scroll_pos)
elif event == '-TEXT2-':
scroll_pos = values['-TEXT2-']
# 将滚动位置同步到另一个多行文本框
window['-TEXT1-'].update(scroll_to=scroll_pos)
window.close()
```
在上面的示例代码中,我们创建了两个多行文本框,并在它们的`enable_events`参数中启用了事件监听。然后,我们在主循环中监听事件,当用户滚动其中一个多行文本框时,我们获取其滚动位置,并将其同步到另一个多行文本框中。最后,我们在用户关闭窗口或点击“Exit”按钮时退出程序。
阅读全文