Python 在Tkinter列表框中显示数据帧

Python 在Tkinter列表框中显示数据帧,python,python-3.x,pandas,tkinter,Python,Python 3.x,Pandas,Tkinter,我正在创建一个学习python的基本应用程序 该应用程序将由tkinter GUI中显示的pandas数据框组成,用户可以在该数据框中选择行,然后使用其他单独的文本框编辑或删除该行,这些文本框在用户每次选择特定行时填充 目前,我只能在文本框中显示我的数据框,但这需要是一个列表框,以便用户可以轻松地选择行并在100行的数据框中滚动 下面是我的代码片段: outp = Text(self.window,height = 10, width = 100) #declaring the text

我正在创建一个学习python的基本应用程序

该应用程序将由tkinter GUI中显示的pandas数据框组成,用户可以在该数据框中选择行,然后使用其他单独的文本框编辑或删除该行,这些文本框在用户每次选择特定行时填充

目前,我只能在文本框中显示我的数据框,但这需要是一个列表框,以便用户可以轻松地选择行并在100行的数据框中滚动

下面是我的代码片段:

   outp = Text(self.window,height = 10, width = 100) #declaring the text box
   outp.insert(END, df) #adding the dataframe (df) to the text box

我在互联网上搜寻答案,但解决方案都是针对那些用例的,他们通常会说“使用标签盒”

当我将文本更改为Listbox时,dataframe显示在一个长行中


非常感谢您的任何意见。

使用Treeview解决

代码片段如下所示:

def df_to_list(self,df):

    self.tree["columns"] = df.columns.values.tolist()
    for x in range(len(df.columns.values)):
        self.tree.column(df.columns.values[x], width=100)
        self.tree.heading(df.columns.values[x], text=df.columns.values[x], command=self.populate_selection)

    for index, row in df.iterrows():
        self.tree.insert("",0,text=index,values=list(row))

    self.tree.grid(row=50,column=0,rowspan=1,columnspan=12,sticky=N+E+W+S)

    self.tree.bind("<<TreeviewSelect>>", self.populate_selection)
def df_to_列表(self,df):
self.tree[“columns”]=df.columns.values.tolist()
对于范围内的x(len(df.columns.values)):
self.tree.column(df.columns.values[x],宽度=100)
self.tree.heading(df.columns.values[x],text=df.columns.values[x],command=self.populate\u selection)
对于索引,df.iterrows()中的行:
self.tree.insert(“,0,text=index,values=list(row))
self.tree.grid(row=50,column=0,rowspan=1,columnspan=12,sticky=N+E+W+S)
self.tree.bind(“,self.populate\u selection)

希望这能帮助其他尝试此功能的人

为什么不尝试一下
Treeview
?@jizhaosama,因为我不知道。我想那会管用的。谢谢