在tkinter中,您使用Excel中的哪个窗口小部件?

问题描述:

我想要一个Excel的表格部件在tkinter中,我正在写一个gui。你有什么建议吗?在tkinter中,您使用Excel中的哪个窗口小部件?

Tktable至少可以说是最好的选择,如果你需要全表支持。简而言之,下面的例子展示了如何使用它,假设你已经安装了它。这个例子是针对python3的,但是对于python2你只需要改变import语句。

import tkinter as tk 
import tktable 

root = tk.Tk() 
table = tktable.Table(root, rows=10, cols=4) 
table.pack(side="top", fill="both", expand=True) 
root.mainloop() 

由于没有可安装pip的软件包,Tktable可能很难安装。

如果您真正需要的是用于显示和编辑数据的小部件网格,那么您可以轻松构建入口网格或标签小部件。举一个例子,看this answer的问题Python. GUI(input and output matrices)?

+2

嘿,我有点困惑。我应该下载哪个文件并将其放在哪个目录中? – GiannisIordanou

+0

TkTabl; e似乎不处于维护状态。 – Sajuuk

您可以使用Tkinter的像这样做一个简单的电子表格的图形界面:

from Tkinter import * 

root = Tk() 

height = 5 
width = 5 
for i in range(height): #Rows 
    for j in range(width): #Columns 
     b = Entry(root, text="") 
     b.grid(row=i, column=j) 

mainloop() 

编辑: 如果你想从电网获取值,你必须使用网格的孩子。

def find_in_grid(frame, row, column): 
    for children in frame.children.values(): 
     info = children.grid_info() 
     #note that rows and column numbers are stored as string                   
     if info['row'] == str(row) and info['column'] == str(column): 
      return children 
    return None 

在哪里可以调用该函数,它将返回子项。要获得该条目的价值,您可以使用:

find_in_grid(root, i+1, j).get() 
+0

我很高兴你的出发点,但它不工作,除非你还为每个'Entry'使用'StringVar' – nmz787