pysimplegui table元素无法使用enable editing
时间: 2024-03-31 22:38:53 浏览: 14
如果您在PySimpleGUI中的Table元素中设置了`enable_events=True`和`bindings键`,但是仍然无法启用编辑功能,可能有以下几个原因:
1. 您使用的是PySimpleGUI版本4.x,而不是5.x。在版本4.x中,Table元素尚未支持编辑功能,您需要升级到版本5.x以使用此功能。
2. 您的PySimpleGUI版本太旧,不支持Table元素的编辑功能。请确保您的PySimpleGUI版本是最新的。
3. 您的操作系统不支持Table元素的编辑功能。请检查您的操作系统是否支持Table的编辑功能。
如果您确认了以上原因并且仍然遇到问题,请提供更多详细信息,例如您的代码和PySimpleGUI版本,以便我们更好地帮助您解决问题。
相关问题
pysimplegui table元素如何使用enable editing
要在PySimpleGUI中的Table元素中启用编辑功能,您需要在创建Table时设置`enable_events=True`和`bindings键`。然后,您可以在事件处理程序中捕获事件并使用`update`方法将编辑后的值更新到Table中。下面是一个示例代码片段:
```python
import PySimpleGUI as sg
data = [['John', 'Doe', '35'], ['Jane', 'Doe', '28'], ['Bob', 'Smith', '42']]
headers = ['First Name', 'Last Name', 'Age']
layout = [[sg.Table(values=data, headings=headers, max_col_width=25,
auto_size_columns=True,
enable_events=True,
key='-TABLE-',
bind_return_key=True,
num_rows=10)]]
window = sg.Window('Table Element', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == '-TABLE-':
row, col = values['-TABLE-']
if row != None and col != None:
old_value = data[row][col]
new_value = values[event]
data[row][col] = new_value
window['-TABLE-'].update(values=data)
window.close()
```
在这个例子中,我们创建了一个包含三列数据的Table,并将`enable_events`设置为True,以便我们可以捕获Table编辑事件。我们还指定了一个`key`,以便我们可以在事件处理程序中引用Table。在事件处理程序中,我们检查是否发生了Table编辑事件,然后使用`update`方法将新值更新到Table中。
pysimplegui table元素没有enable editing属性
确实,在PySimpleGUI 4.x中,Table元素没有提供`enable editing`属性。如果您需要在Table中启用编辑功能,您可以使用`Table`元素的`update`方法,通过捕获事件和更改值的方式来实现。
下面是一个示例代码片段,演示如何使用`update`方法来启用编辑功能:
```python
import PySimpleGUI as sg
data = [['John', 'Doe', '35'], ['Jane', 'Doe', '28'], ['Bob', 'Smith', '42']]
headers = ['First Name', 'Last Name', 'Age']
layout = [[sg.Table(values=data, headings=headers, max_col_width=25,
auto_size_columns=True,
key='-TABLE-',
num_rows=10)]]
window = sg.Window('Table Element', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == '-TABLE-':
row, col = values['-TABLE-']
if row != None and col != None:
old_value = data[row][col]
new_value = values[event]
data[row][col] = new_value
window['-TABLE-'].update(values=data)
window.close()
```
在这个例子中,我们创建了一个包含三列数据的Table,并将`key`设置为`'-TABLE-'`,以便我们可以在事件处理程序中引用Table。我们捕获Table的事件,并在事件处理程序中使用`update`方法将新值更新到Table中。如果您想要进一步自定义Table的编辑功能,可以通过捕获事件并处理它来实现。