def find_window(self): self.findwindow = tk.Toplevel(self) self.findwindow.geometry("400x500") self.clicked = tk.StringVar(self.findwindow) self.clicked.set("Select a Deck") self.dropdown = tk.OptionMenu(self.findwindow, self.clicked, *dark_fns.get_list_of_decks()) self.dropdown.pack(side="top") self.clickonce = 0 self.labels = [] self.list_button = tk.Button(self.findwindow, text="List", command=lambda: self.find_window_populate(self.clicked.get(), self.clickonce, self.labels)) self.list_button.pack(side="left")
def create_card_button_window(self): #you dont need to put self on literally everything but if you dont that label wont work. self.createdialog = tk.Toplevel(self) self.createdialog.geometry("350x100") self.createdialog.title("Create Card") self.clicked = tk.StringVar(self.createdialog) self.clicked.set("Select a Deck") self.dropdown = tk.OptionMenu(self.createdialog, self.clicked, *dark_fns.get_list_of_decks()) self.dropdown.pack(side="top") self.frontside = tk.Entry(self.createdialog) self.frontside.pack(side="top") self.backside = tk.Entry(self.createdialog) self.backside.pack(side="top") self.add_button = tk.Button(self.createdialog, text="Add", command=lambda: self.create_card_button_add(self.clicked.get(), self.frontside.get(), self.backside.get())) self.add_button.pack(side="top")
def load_display_decks(self): # listbox = tk.Listbox(self) # listbox.grid(column=0) decks = dark_fns.get_list_of_decks() tk.Label(self, text="List of All Decks:\tTotal Items\tFor Review").grid(column=0) labels = [] for i in decks: num = dark_fns.get_card_id(i) num1 = dark_fns.determine_review(i) labels.append(tk.Label(self, text=i+"\t"+str(num)+"\t"+str(len(num1)*2))) # label.grid(column=0) # label.bind("<Button-1>", lambda e: self.review_window(i)) for x in range(0, len(labels)): labels[x].grid(column=0) #listbox.insert(tk.END, labels[x].cget("text")) labels[x].bind("<Button-1>", lambda event, bound_x=x: self.review_window(decks[bound_x]))
def review_window(self, event): widget = event.widget cs = widget.curselection() name = "" decks = dark_fns.get_list_of_decks() for i in cs: name = decks[i] self.reviewwindow = tk.Toplevel(self) self.reviewwindow.geometry("350x50") review_deck = dark_fns.determine_review(name) back_front = review_deck.copy() self.var = tk.IntVar(self) self.labl = tk.Label(self.reviewwindow, text=review_deck[0][2]) self.labl.pack(side="top") self.ans = tk.Entry(self.reviewwindow) self.ans.pack(side="top") self.ans.config(state="normal") print(review_deck) for i in review_deck: # self.labl = tk.Label(self.reviewwindow, text=i[2]) # self.labl.pack(side="top") # self.ans = tk.Entry(self.reviewwindow) # self.ans.pack(side="top") self.ans.config(state="normal") self.ans.bind('<Return>', lambda x: correct_or_not(self, i, review_deck)) self.ans.wait_variable(self.var) if dark_fns.get_backfront(): for i in back_front: # self.labl = tk.Label(self.reviewwindow, text=i[3]) # self.labl.pack(side="top") # self.ans = tk.Entry(self.reviewwindow) # self.ans.pack(side="top") self.ans.config(state="normal") self.ans.bind('<Return>', lambda x: not_or_correct(self, i, review_deck)) self.ans.wait_variable(self.var)
def load_display_decks(self): testframe = tk.Frame(self) listbox = tk.Listbox(testframe) scrollbar = tk.Scrollbar(testframe, orient="vertical") decks = dark_fns.get_list_of_decks() tk.Label( self, text="List of All Decks:\tTotal Items\tFor Review").grid(column=0) for i in decks: num = dark_fns.get_card_id(i) num1 = dark_fns.determine_review(i) listbox.insert(tk.END, i + " " + str(num) + " " + str(len(num1) * 2)) listbox.bind("<Double-1>", partial(dark_review.review_window, self)) listbox.pack(side="left") listbox.config(yscrollcommand=scrollbar.set) scrollbar.config(command=listbox.yview) scrollbar.pack(side="right", fill="y") testframe.grid(column=0) #in order of easiest # | # \ / # hardest #TODO: DONE[make it populate a list of decks], DONE[add deck] and DONE[card button], make it look not like crap. #TODO: delete deck button #TODO: [kinda already does it?]check review then [DONE]make the reviews #TODO: [DONE]setting options: back to front review option and manual interval setup #TODO: [DONE]find/[DONE]edit/[DONE]delete cards #TODO: [DONE]ReOrganize and Tests #ISSUES: #[RESOLVED]review_deck in correct_or functions becomes complete garbage and not letting the index function work #[RESOLVED]the entry and label entries wont delete and remake themselves #[RESOLVED]the deck_name labels all open the same deck which is the last created deck.