做一个下拉框和4*3的 datafram,每点选下拉框的一个选项就往光标所在的datafram单元格添加下拉框的文本
时间: 2023-05-21 10:07:39 浏览: 75
可以使用 Python 的 tkinter 模块和 pandas 模块来完成这个任务。以下是代码示例:
```python
import tkinter as tk
import pandas as pd
# 创建一个窗口
window = tk.Tk()
# 创建一个下拉列表
options = ['选项1', '选项2', '选项3', '选项4']
selected_option = tk.StringVar(window)
selected_option.set(options[0])
dropdown = tk.OptionMenu(window, selected_option, *options)
dropdown.pack()
# 创建一个DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]}
df = pd.DataFrame(data)
# 创建一个表格视图
table = tk.Frame(window)
for i in range(df.shape[0]):
for j in range(df.shape[1]):
cell = tk.Label(table, text=df.iat[i, j])
cell.grid(row=i, column=j)
table.pack()
# 定义一个函数,用于在选项变化时更新表格
def update_table(*args):
value = selected_option.get()
selected_cell = table.focus_get()
if selected_cell:
selected_row = selected_cell.grid_info()['row']
selected_col = selected_cell.grid_info()['column']
df.iat[selected_row, selected_col] = value
selected_cell.config(text=value)
# 监听选项变化
selected_option.trace('w', update_table)
# 进入主循环
window.mainloop()
```
当你选择下拉框中的某个选项时,相应的单元格会更新为选项的文本。如果没有选中单元格,则不会有任何效果。
阅读全文