Раньше я брал значения Listbox и вводил их в виджеты ввода. Теперь мне нужно сделать то же самое с деревом, но единственная помощь, которую я нашел, похожа на ту, что я хочу сделать: Печать и вставка выбранной строки в виде дерева в виджет ввода tkinter не работает для меня. В основном мне нужно выяснить, как изменить то, что я обычно делаю со списком, чтобы работать для дерева.
def dynamicPO(self):
sql=("""SELECT(cast(Notes as nvarchar(max))) 'PO Number', POPY.AccountCode, POPY.Vendor, Items,FORMAT(([POAmount]),'C0') As 'PO AMOUNT', FORMAT(SUM([DailyCosts].DailyCost),'C0') AS 'COSTS TO DATE',FORMAT(POAmount - SUM(DailyCosts.DailyCost), 'C0') 'Remaining Amount' FROM DailyCosts JOIN POPY ON DailyCosts.WellID = POPY.WellID AND DailyCosts.JobID = POPY.JobID AND (cast(DailyCosts.Notes as nvarchar(max)))= POPY.PONumber WHERE DailyCosts.WellID = ? and DailyCosts.JobID = ? GROUP BY (cast(DailyCosts.Notes as nvarchar(max))),POAmount,POPY.Vendor,POPY.Items,POPY.AccountCode, POPY.WellID, POPY.JobID ORDER BY POPY.Vendor""")
self.cursor.execute(sql,[self.powellid_bx.get(),self.pojobid_bx.get(ACTIVE)])
rows = self.cursor.fetchall()
for row in rows:
print(row) # it print all records in the database
self.tree.insert("", tk.END, values=row)
self.tree= ttk.Treeview(self.tab4, column=("column1", "column2", "column3","column4", "column5", "column6", "column7"), show='headings')
self.tree.grid(row=7, column = 0, columnspan =8, sticky = "NSEW")
self.tree.heading("#1", text="PO Number")
self.tree.heading("#2", text="Budget Code")
self.tree.heading("#3", text="Vendor")
self.tree.heading("#4", text="Items")
self.tree.heading("#5", text="PO Amount")
self.tree.heading("#6", text="Cost to Date")
self.tree.heading("#7", text="Remaining PO Amount")
self.tree.bind("<<TreeViewSelect>>", self.get_selected_PO)
Приведенный ниже код работает со списком, но у дерева удачи нет опции выбора прокрутки
def get_selected_PO(self,event):
global selected_tuple
if self.tree.curselection():
index = self.tree.curselection()[0]
selected_tuple = self.tree.get(index)
self.treepo_entry.insert('end', str(selected_tuple[0]))
self.treevend_entry.insert('end', selected_tuple[1])
self.treeitems_entry.insert('end', selected_tuple[2])
self.treeamount_entry.insert('end', selected_tuple[3])
self.treedate_entry.insert('end', selected_tuple[4])
self.treecomments_entry.insert('end' , selected_tuple[5])
Я пытался сделать что-то подобное, но безрезультатно
def get_selected_PO(self,event):
for item in self.tree.selection():
self.treepo_entry.insert(END,'row')