환자의 이름과 방문 날짜가있는 환자의 목록에 대한 간단한 GUI를 만들고 있습니다. tkinter 및 treeview를 사용하여 사용자가 입력해야하는 항목이 있습니다. 환자의 이름과 생각은 환자의 이름이 목록에 있으면 환자의 이름이 강조 표시된 (또는 선택된) 행 (또는 행)입니다. 또는 다른 옵션을 모든 환자의 목록 상자에 포함하여 검색 할 환자 이름이있는 항목 만 표시 할 수 있습니다.treeview에서 검색하고 검색된 항목이 포함 된 행을 강조 표시/선택
내가 전에 트 리뷰를 사용하지 않은 그 기능과 예에 대한 많은 데이터를 찾을 수 없습니다, 그래서, 어떤 아이디어가이 시점에서 도움이 될 것입니다 선택/하이라이트 부분을 고민하고....
내 코드는 다음과 같습니다.
import tkinter
from tkinter import ttk
class MainPage:
def __init__(self,master):
self.master = master
self.frame = tkinter.Frame(self.master)
self.master.columnconfigure(0, weight=1)
self.master.columnconfigure(1, weight=3)
self.master.columnconfigure(2, weight=1)
self.master.columnconfigure(3, weight=1)
self.master.columnconfigure(4, weight=1)
self.searchfield = tkinter.Frame(self.master)
self.searchfield.grid(row=1, column=0, columnspan=4)
self.search_var = tkinter.StringVar()
self.search_var.trace("w", lambda name, index, mode: self.selected)
self.entry = tkinter.Entry(self.searchfield,
textvariable=self.search_var, width=45)
self.entry.grid(row=0, column=0, padx=10, pady=3)
self.searchbtn = tkinter.Button(self.searchfield, text='Search',
command=self.selected)
self.searchbtn.grid(row=0, column=1)
self.treeFrame = tkinter.Listbox(self.searchfield, width=45, height=45)
self.treeFrame.grid(row=1, column=0, padx=10, pady=3)
self.tree = ttk.Treeview(self.treeFrame, columns=('Name', 'Date'))
self.tree.heading('#0', text='ID')
self.tree.heading('#1', text='Name')
self.tree.heading('#2', text='Date')
self.tree.column('#1', stretch=tkinter.YES)
self.tree.column('#2', stretch=tkinter.YES)
self.tree.column('#0', stretch=tkinter.YES)
self.tree.grid(row=4, columnspan=4, sticky='nsew')
self.treeview = self.tree
self.i = 1
self.patient_list = [{"Name": "Jane", "Date": "05.09.2017"},
{"Name": "David", "Date": "04.09.2017"},
{"Name": "Patrick", "Date": "03.09.2017"}]
for p in self.patient_list:
self.tree.insert('', 'end', text="ID_"+str(self.i), values=
(p["Name"], p["Date"]))
self.i = self.i + 1
self.search_item = self.entry.get()
for p in self.patient_list:
if p["Name"] == self.search_item:
self.selected(self.search_item)
def selected(self):
currentItem = self.tree.focus()
print(self.tree.item(currentItem)['values'])
root=tkinter.Tk()
d=MainPage(root)
root.mainloop()
미리 감사드립니다.
고맙습니다.나는 그것을 시험하고 나의 피드백을 제공 할 것이다! 나는 아직 학습 및 테스트 단계에 있으며 귀하의 의견은 바로 지금 필요한 것입니다. –