Как вы добавляете строку treeview на различные настраиваемые вкладки с помощью выпадающего списка со списком?

#tkinter #tabs #treeview #customization #file-management

#tkinter #tabs #treeview #customization #file-management

Вопрос:

Что это за программа:

Я пытаюсь написать графический интерфейс управления файлами, который полностью доступен для редактирования пользователем. Они могут добавлять или удалять вкладки, родителей, детей и файлы PDF и/или DWG, чтобы создать настраиваемый иерархический вид дерева.

Полный Код:

 #Imports  from tkinter import* import tkinter as tk from tkinter import ttk#  #Product Data Class class Product_Data(tk.Tk):  def __init__(self):  super().__init__()  #Window  self.title('Product Data')  self.geometry('950x550')  #Frames  mainframe = tk.Frame(self, height=550, width=950, relief= 'sunken')  mainframe.pack(fill='both', side='top', expand=True)  nbk=tk.LabelFrame(mainframe, text='', height=470, width=500, relief= 'sunken')  nbk.pack(fill='both', side='left', expand=True)  nef=tk.LabelFrame(mainframe, text='New Entry', height=100, width=150, relief= 'sunken')  nef.pack(fill='both', side='left', expand=True)   #Notebook  notebook = ttk.Notebook(nbk)  notebook.pack(fill='both', expand=True)  #Count  global count  count=0  count =1  #New Item Action  #Add New Item  #Combobox  def cbos(event):  if sv_e.get()==' New Vender':  nv.config(state='normal')  nv_e.config(state='normal')   else:  nv_e.delete(0,'end')  nv.config(state='disabled')  nv_e.config(state='disabled')   #"Create New" Button  def sel():   #New Vender  global count  if sv_e.get()==' New Vender':  count= ttk.Frame(notebook, width=500, height=470)   #Packing Frames  count.pack(fill='both', expand=True)   #Adding to Notebook  notebook.add(count, text=nv_e.get(), compound="top")   #Treeview vender  count = ttk.Treeview(count)  count.pack(fill='both', expand=True)   #Add in Comandbox  nven = nv_e.get().strip()  if nven:  sv_o.append(nven)  sv_e["values"] = sv_o   #Remove Entries  sv_e.delete(0,'end')  nv_e.delete(0,'end')   #New Product  else:  sv_e.get().insert(parent=pn_e.get(), index='end', iid=count, text=pronum_e.get())  count =1   #Clear Entry Box  pn_e.delete(0,'end')  pronum_e.delete(0,'end')   #Delete Selected Item  def delete():  pass  #New Item Input  #Labels  #Vender  sv=tk.Label(nef, text='Select Vender:')  sv.grid(row=0, column=0)   #Parent  pn=tk.Label(nef, text='Input Parent Number:')  pn.grid(row=4, column=0)   #Product  pronum=tk.Label(nef, text='Input Product:')  pronum.grid(row=6, column=0)   #New Vender  nv=tk.Label(nef, text='Input New Vender:', state='disabled')  nv.grid(row=2, column=0)   #Parent Number  pnn1=tk.Label(nef, text='Parent Number:')  pnn1.grid(row=10, column=0)  pnn2=tk.Label(nef, text='0', font="Helvetica")  pnn2.grid(row=11, column=0)   #Combo Box  #Venders  sv_o=[' New Vender']  sv_e = ttk.Combobox(nef, value=sv_o)  sv_e.current()  sv_e.bind("lt;lt;ComboboxSelectedgt;gt;", cbos)  sv_e.grid(row=1, column=0)   #Spinbox  pn_e=tk.Spinbox(nef, from_=0, to=1000000)  pn_e.grid(row=5, column=0)   #Entry Box  pronum_e=tk.Entry(nef)  pronum_e.grid(row=7, column=0)   #New Vender  nv_e=tk.Entry(nef, state='disabled')  nv_e.grid(row=3, column=0)   #Buttons  #Add  chb=tk.Button(nef, text='Create New', command=sel)  chb.grid(row=8, column=0)   #Delete  delb=tk.Button(nef, text='Delete', command=delete)  delb.grid(row=9, column=0)   #Loop app = Product_Data() app.mainloop()  

Код проблемы:

 else:  sv_e.get().insert(parent=pn_e.get(), index='end', iid=count, text=pronum_e.get())  count =1  

Вопрос:

как создать строку в представлении дерева, выбранном пользователем с помощью командной строки?

Пример:

Пользователь создает две вкладки «Тест 1» и «Тест 2». Они хотят добавить «Пункт 1» в «Тест 1» и «Пункт 2» в «Тест 2».

 nven = nv_e.get().strip()  if nven:  sv_o.append(nven)  sv_e["values"] = sv_o  

Это делает так, что «Тест 1» и «Тест 2» теперь находятся в поле со списком; но вы не можете использовать sv_e.get() его для захвата нового выделения и создания новой строки (хотя я не уверен, почему). Мне нужно знать, как получить все, что выбрано в выпадающем списке, и добавить строку на выбранную вкладку блокнота.

Вывод:

I could really use some help on this. There are a few more issues I’m having with this code as well that I’ll probably ask later if I can’t figure it out. This one has just really confused me and there’s not a whole lot on the internet about this kind of program, at least not that I’ve found. Thanks in advance.