#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.