【发布时间】:2019-03-15 09:53:39
【问题描述】:
我刚刚在 Stack Overflow 上创建了一个帐户,所以我想问一下如何将所有树视图数据行转移到另一个树视图?我做了一个在树视图中插入数据的函数,我想在另一个函数中将这些数据传输到另一个树视图中。我设法只转移了第一行。我很难做到这一点,任何形式的帮助都深表感谢。抱歉语法不好。
这是我的主树视图:
cartTreeView = ttk.Treeview( posWindowCanvas )
cartTreeView[ "show" ] = "headings"
cartTreeView[ "columns" ] = ( "Sales ID", "Product Code", "Name", "Price", "Quantity", "Total" )
cartTreeView.heading( "Sales ID", text = "Sales ID", anchor = W )
cartTreeView.heading( "Product Code", text = "Product Code", anchor = W )
cartTreeView.heading( "Name", text = "Name", anchor = W )
cartTreeView.heading( "Price", text = "Price", anchor = W )
cartTreeView.heading( "Quantity", text = "Quantity", anchor = W )
cartTreeView.heading( "Total", text = "Total", anchor = W )
这是将数据添加到树视图中的函数:
def addNow():
getTreeValue = productsTreeView.focus()
selected = productsTreeView.item( getTreeValue )
total = float( selected["values"][2] ) * productQuantity.get()
roundedUp = round( total, 2 )
cartTreeView.insert( "", "end" , text = "", values = ( "000", str(selected["values"][0]), selected["values"][1], selected["values"][2], productQuantity.get(), roundedUp ) )
这是创建另一个树视图的函数,这是我希望显示主树视图中的数据的地方。
def transactNow():
transactNowWindow = Toplevel()
transactNowWindow.title( "Transaction Window" )
transactNowWindow.geometry( "725x290" )
transactNowWindow.resizable( height = False, width = False )
transactNowWindowCanvas = Canvas( transactNowWindow, height = 550, width = 280, bg = "gray84" )
transactNowWindowCanvas.pack( fill = BOTH )
cartTreeView2 = ttk.Treeview( transactNowWindowCanvas )
cartTreeView2[ "show" ] = "headings"
cartTreeView2[ "columns" ] = ( "Sales ID", "Product Code", "Name", "Price", "Quantity", "Total" )
cartTreeView2.heading( "Sales ID", text = "Sales ID", anchor = W )
cartTreeView2.heading( "Product Code", text = "Product Code", anchor = W )
cartTreeView2.heading( "Name", text = "Name", anchor = W )
cartTreeView2.heading( "Price", text = "Price", anchor = W )
cartTreeView2.heading( "Quantity", text = "Quantity", anchor = W )
cartTreeView2.heading( "Total", text = "Total", anchor = W )
cartTreeView2.column( "Sales ID", minwidth = 0, width = 55, stretch = NO )
cartTreeView2.column( "Product Code", minwidth = 0, width = 90, stretch = NO )
cartTreeView2.column( "Name", minwidth = 0, width = 325, stretch = NO )
cartTreeView2.column( "Price", minwidth = 0, width = 80, stretch = NO )
cartTreeView2.column( "Quantity", minwidth = 0, width = 55, stretch = NO )
cartTreeView2.column( "Total", minwidth = 0, width = 80, stretch = NO )
cartTreeView2.place( x = 10, y = 10 )
cartTreeViewScrollBar = ttk.Scrollbar( transactNowWindowCanvas, orient = "vertical", command = cartTreeView2.yview )
cartTreeViewScrollBar.place( x = 698, y = 10, height = 227 )
cartTreeView2.configure( yscrollcommand = cartTreeViewScrollBar.set )
for child in cartTreeView.get_children():
cartList.append( cartTreeView.item( child )["values"] )
cartTreeView2.insert( "", "end", text = "", values = ( cartList[0][0], cartList[0][1], cartList[0][2], cartList[0][3], cartList[0][4], cartList[0][5] ) )
我的问题是我只能插入一行,但我想在另一个树视图中插入所有行。
for child in cartTreeView.get_children():
cartList.append( cartTreeView.item( child )["values"] )
cartTreeView2.insert( "", "end", text = "", values = ( cartList[0][0], cartList[0][1], cartList[0][2], cartList[0][3], cartList[0][4], cartList[0][5] ) )
【问题讨论】: