def __init__(self, app, master):
super().__init__(master, text="Search song", padding=4)
self.app = app
self.search_text = tk.StringVar()
self.filter_choice = tk.StringVar(value="title")
bf = ttk.Frame(self)
ttk.Label(bf, text="Search for:").pack()
e = ttk.Entry(bf, textvariable=self.search_text)
e.bind("<Return>", self.do_search)
e.bind("<KeyRelease>", self.on_key_up)
self.search_job = None
e.pack()
ttk.Radiobutton(bf, text="title", value="title", variable=self.filter_choice, width=10).pack()
ttk.Radiobutton(bf, text="artist", value="artist", variable=self.filter_choice, width=10).pack()
ttk.Radiobutton(bf, text="album", value="album", variable=self.filter_choice, width=10).pack()
ttk.Radiobutton(bf, text="year", value="year", variable=self.filter_choice, width=10).pack()
ttk.Radiobutton(bf, text="genre", value="genre", variable=self.filter_choice, width=10).pack()
ttk.Button(bf, text="Search", command=self.do_search).pack()
ttk.Button(bf, text="Add all selected", command=self.do_add_selected).pack()
bf.pack(side=tk.LEFT)
sf = ttk.Frame(self)
cols = [("title", 320), ("artist", 200), ("album", 200), ("year", 50), ("genre", 120), ("length", 60)]
self.resultTreeView = ttk.Treeview(sf, columns=[col for col, _ in cols], height=11, show="headings")
vsb = ttk.Scrollbar(orient="vertical", command=self.resultTreeView.yview)
self.resultTreeView.configure(yscrollcommand=vsb.set)
self.resultTreeView.grid(column=1, row=0, sticky=tk.NSEW, in_=sf)
vsb.grid(column=0, row=0, sticky=tk.NS, in_=sf)
for col, colwidth in cols:
self.resultTreeView.heading(col, text=col.title(), command=lambda c=col: self.sortby(self.resultTreeView, c, 0))
self.resultTreeView.column(col, width=colwidth)
self.resultTreeView.bind("<Double-1>", self.on_doubleclick)
sf.grid_columnconfigure(0, weight=1)
sf.grid_rowconfigure(0, weight=1)
sf.pack(side=tk.LEFT, padx=4)
评论列表
文章目录