【发布时间】:2017-07-28 19:56:34
【问题描述】:
我目前正在使用一个函数以电子表格样式格式显示 pandas 数据框。我希望能够添加一些功能来根据它们的内容格式化树视图的各个单元格,例如如果它们包含子字符串 'X' 或者它们的值高于 Y。
目前实现的更新功能如下:
def updateTree(self, dataframe):
'''
Updates the treeview with the data in the dataframe
parameter
'''
#Remove any nan values which may have appeared in the dataframe parameter
df = dataframe.replace(np.nan,'', regex=True)
#Currently displayed data
self.treesubsetdata = dataframe
#Remove existing items
for item in self.tree.get_children(): self.tree.delete(item)
#Recreate from scratch the columns based on the passed dataframe
self.tree.config(columns= [])
self.tree.config(columns= list(dataframe.columns))
#Ensure all columns are considered strings and write column headers
for col in dataframe.columns:
self.tree.heading(col,text=str(col))
#Get number of rows and columns in the imported script
self.rows,self.cols = dataframe.shape
#Populate data in the treeview
for row in dataframe.itertuples():
self.tree.insert('', 'end',values = tuple(row[1:]))
#Minimise first column
self.tree.column('#0',width=0)
self.tree.update()
任何人都可以确认您实际上可以编辑评论中的单个单元格吗?
如果是,有什么想法可以实现吗?
【问题讨论】:
-
我认为这不可能。您是否有任何理由不想制作一个简单的 Label 或 Entry 小部件网格?
-
我使用自定义类来创建、显示、添加滚动条、更新和使用显示数据上的绑定键执行复杂的排序和过滤。我不确定此时我是否可以重新设计框架。如果不可能,我想我将不得不重新考虑功能。
标签: python python-3.x tkinter treeview ttk