pysimplegui table元素无法使用enable editing
时间: 2024-03-31 11:38:53 浏览: 95
如果您在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 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的编辑功能,可以通过捕获事件并处理它来实现。
pysimplegui table元素里的内容怎么复制和编辑
在 PySimpleGUI 的 Table 元素中,您可以通过设置 `enable_events=True` 参数来启用事件处理程序,并使用事件处理程序来实现复制和编辑功能。
要实现复制功能,您可以使用 `sg.clipboard_set()` 函数将所选单元格中的内容复制到剪贴板中。例如:
```
import PySimpleGUI as sg
data = [['Row {} Col {}'.format(i, j) for j in range(3)] for i in range(5)]
headers = ['Column {}'.format(i) for i in range(3)]
layout = [[sg.Table(values=data, headings=headers, num_rows=5, enable_events=True, key='-TABLE-')]]
window = sg.Window('Table Example', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == '-TABLE-':
if values['-TABLE-'] != []:
sg.clipboard_set(values['-TABLE-'][0])
window.close()
```
在上面的示例中,当用户单击表格中的单元格时,程序将检查用户是否选择了单元格,并将其内容复制到剪贴板中。
要实现编辑功能,您可以将 `enable_events=True` 参数与 `enable_editing=True` 参数一起使用,以启用表格中的编辑模式。例如:
```
import PySimpleGUI as sg
data = [['Row {} Col {}'.format(i, j) for j in range(3)] for i in range(5)]
headers = ['Column {}'.format(i) for i in range(3)]
layout = [[sg.Table(values=data, headings=headers, num_rows=5, enable_events=True, enable_editing=True, key='-TABLE-')]]
window = sg.Window('Table Example', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == '-TABLE-':
row, col = values['-TABLE-'][0]
if row != None and col != None:
data[row][col] = values[event]
window.close()
```
在上面的示例中,当用户在表格中编辑单元格时,程序将检测到 `-TABLE-` 事件,并将编辑后的值存储在 `data` 列表中。
阅读全文