def tkinter_gui(self): self.input_frame.pack(side=TOP) self.tree_view_frame.pack(side=TOP) self.pack(side=TOP) # Title self.parent.title("Tower of Hero Assistant") # Icon self.parent.iconbitmap(ROOT_DIR + "\\images\\toh_assistant_icon.ico") # Window Size top = self.winfo_toplevel() top.rowconfigure(0, weight=1) top.columnconfigure(0, weight=1) self.rowconfigure(0, weight=1) self.columnconfigure(0, weight=1) self.grid(sticky="nsew") # Background Color self.parent.config(background="darkgreen") # Menu Bar menu_bar = Menu(self.parent) self.parent.config(menu=menu_bar) file_menu = Menu(menu_bar, tearoff=0) file_menu.add_command(label="Import Records from PNG", command=self.get_item_order_and_stats) file_menu.add_command(label="Exit", command=self.parent.quit) menu_bar.add_cascade(label="File", menu=file_menu) # TODO: Add saving # TODO: Memory leak # Records Import Elements import_description = Label(self.input_frame, text="Import Records via PNG Screenshot") import_description.grid(column=0, row=0, sticky="w", columnspan=2, padx=4, pady=4) import_details = Label(self.input_frame, text="Enter player's name:") import_details.grid(column=0, row=1, sticky="e", padx=4, pady=4) import_name_box = Entry(self.input_frame, textvariable=self.import_name) import_name_box.grid(column=1, row=1, sticky="nsew", padx=4, pady=4) # TODO: Checkbox for showing the image to confirm the results # TODO: Checkbox for opening Notepad document # TODO: Checkbox for displaying found results self.import_name.set("") self.import_button = Button(self.input_frame, text="Import", command=self.insert_stats) self.import_button.grid(column=0, row=2, sticky="nsew", columnspan=2, padx=4, pady=4) # Table treeview_style = ttk.Style(self.tree_view_frame) treeview_style.configure("Treeview", rowheight=30, background="darkgreen", borderwidth=0) treeview_style.configure("Treeview.Heading", foreground="black") self.tree.grid(padx=4, pady=4) scrollbar = ttk.Scrollbar(self.tree_view_frame, orient="vertical", command=self.tree.yview) self.tree.configure(yscrollcommand=scrollbar.set) self.tree.grid(row=0, column=2, rowspan=4, sticky="nsew") scrollbar.grid(row=0, column=5 + len(self.list_of_imports), rowspan=4, sticky="nse", pady=4) scrollbar.configure(command=self.tree.yview) # Set up the initial columns self.tree["columns"] = ("Name", "Tier", "Importance", "Order") self.tree.heading("#0", text="Item") self.tree.column("#0", anchor=CENTER, minwidth=0, width=60) self.tree.heading("Name", text="Name") self.tree.column("Name", anchor=W, minwidth=0, width=150) self.tree.heading("Tier", text="Tier") self.tree.column("Tier", anchor=CENTER, minwidth=0, width=36) self.tree.heading("Importance", text="Importance") self.tree.column("Importance", anchor=CENTER, minwidth=0, width=80) # Move to center self.parent.withdraw() # Hide it immediately self.parent.update_idletasks() # Then hold on drawing the window x = (self.parent.winfo_screenwidth() - self.parent.winfo_reqwidth()) / 2 y = (self.parent.winfo_screenheight() - self.parent.winfo_reqheight()) / 2 self.parent.geometry("+%d+%d" % (x, y)) self.parent.deiconify() # Draw the window immediately # Create a progress bar self.progress_window = Toplevel() sub_x = x + self.parent.winfo_reqwidth() / 4 sub_y = y + self.parent.winfo_reqheight() / 2 self.progress_window.geometry("+%d+%d" % (sub_x, sub_y)) # self.progress_window.wm_title("Progress") self.progress_bar = ttk.Progressbar(self.progress_window, orient="horizontal", length=200, mode="determinate") self.progress_bar["value"] = 0 self.progress_bar[ "maximum"] = 60 # 61 total: 54 items, 6 stats, 1 total line self.progress_window.withdraw() self.progress_window.update_idletasks() self.make_the_treeview()
def updateevent(): def update(): id = idval.get() event_name = event_nameval.get() co_name = co_nameval.get() mobile = mobileval.get() email = emailval.get() event_address = event_addressval.get() event_date = event_dateval.get() date = dateval.get() time = timeval.get() strr = 'update eventdata2 set event_name=%s,co_name =%s,mobile=%s,email=%s,event_address=%s,event_date,date=%s,time=%s where id=%s' mycursor.execute(strr, (event_name, co_name, mobile, email, event_address, event_date, date, time, id)) con.commit() messagebox.showinfo('Notifications', 'Id {} Modified sucessfully...'.format(id), parent=updateroot) strr = 'select *from eventdata2' mycursor.execute(strr) datas = mycursor.fetchall() eventtable.delete(*eventtable.get_children()) for i in datas: vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]] eventtable.insert('', END, values=vv) updateroot = Toplevel(master=DataEntryFrame) updateroot.grab_set() updateroot.geometry('470x585+220+160') updateroot.title('Student Management System') updateroot.config(bg='skyblue') updateroot.iconbitmap('mana.ico') updateroot.resizable(False, False) #--------------------------------------------------- Add event Labels idlabel = Label(updateroot, text='Enter Event Id : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') idlabel.place(x=10, y=10) event_namelabel = Label(updateroot, text='Enter Event Name : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_namelabel.place(x=10, y=70) co_namelabel = Label(updateroot, text='Enter Co-ordinator Name: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') co_namelabel.place(x=10, y=130) mobilelabel = Label(updateroot, text='Enter Co-ordinator Mobile : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') mobilelabel.place(x=10, y=190) emaillabel = Label(updateroot, text='Enter Co-ordinator Email : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') emaillabel.place(x=10, y=250) event_addresslabel = Label(updateroot, text='Enter Address : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_addresslabel.place(x=10, y=310) event_datelabel = Label(updateroot, text='Enter Date : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_datelabel.place(x=10, y=370) timelabel = Label(updateroot, text='Event Time : ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') timelabel.place(x=10, y=430) ##----------------------------------------------------------- Add event Entry idval = StringVar() event_nameval = StringVar() co_nameval = StringVar() mobileval = StringVar() emailval = StringVar() event_addressval = StringVar() event_dateval = StringVar() #dateval = StringVar() timeval = StringVar() identry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=idval) identry.place(x=250, y=10) event_nameentry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=event_nameval) event_nameentry.place(x=250, y=70) co_nameentry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=co_nameval) co_nameentry.place(x=250, y=130) mobileentry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=mobileval) mobileentry.place(x=250, y=190) emailentry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=idval) emailentry.place(x=250, y=250) event_addressentry = Entry(updateroot, font=('roman', 15, 'bold'), bd=5, textvariable=event_addressval) event_addressentry.place(x=250, y=310) event_dateentry = Entry(updateroot, font=('roman', 15, 'bold'), bd=5, textvariable=event_dateval) event_dateentry.place(x=250, y=370) timeentry = Entry(updateroot, font=('roman', 12, 'bold'), bd=5, textvariable=timeval) timeentry.place(x=250, y=430) ############------------------------- add button submitbtn = Button(updateroot, text='Submit', font=('roman', 15, 'bold'), width=20, bd=5, activebackground='blue', activeforeground='white', bg='skyblue', command=update) submitbtn.place(x=150, y=500) cc = eventtable.focus() content = eventtable.item(cc) pp = content['values'] if (len(pp) != 0): idval.set(pp[0]) event_nameval.set(pp[1]) co_nameval.set(pp[2]) mobileval.set(pp[3]) emailval.set(pp[4]) event_addressval.set(pp[5]) event_dateval.set(pp[6]) timeval.set(pp[7]) updateroot.mainloop()
resolution=0.01, command=self.update) s.set(self.value) s.pack() def update(self, value): self.value = float(value) self.tkim.paste(self.enhancer.enhance(self.value)) # # main if len(sys.argv) != 2: print("Usage: enhancer file") sys.exit(1) root = Tk() im = Image.open(sys.argv[1]) im.thumbnail((200, 200)) Enhance(root, im, "Color", ImageEnhance.Color, 0.0, 4.0).pack() Enhance(Toplevel(), im, "Sharpness", ImageEnhance.Sharpness, -2.0, 2.0).pack() Enhance(Toplevel(), im, "Brightness", ImageEnhance.Brightness, -1.0, 3.0).pack() Enhance(Toplevel(), im, "Contrast", ImageEnhance.Contrast, -1.0, 3.0).pack() root.mainloop()
def popup_window_contrast(self): text = "Comparing ChIP-seq Peaks" contrast_fn = join(self.workpath.get(), self.contrast_fn) peakinfo_fn = join(self.workpath.get(), self.peakinfo_fn) NA = 'N/A' try: groups = list( set([ l.split('\t')[-1].strip() for l in open(peakinfo_fn) if l.split('\t')[-1].strip() ])) if len(groups) < 2: showwarning( 'WARNING!', "More than one groups need to be fefined in Peak Information File!" ) print('groups:', groups) return except IOError: showerror('Error', "Did you set peak information?") print('Error:', 'Cannot process peakcall.tab file:') return top = Toplevel() info = LabelFrame(top, text=text) #"Group Information") print(groups) contrast_vars = [] contrast_menus = [] n = 0 groups.insert(0, NA) for i in range(int((len(groups) - 1) * (len(groups) - 2) / 2)): n = n + 1 v1, v2 = StringVar(), StringVar() contrast_vars.append([v1, v2]) o1, o2 = OptionMenu(info, v1, *groups), OptionMenu(info, v2, *groups) contrast_menus.append([o1, o2]) v1.set(NA) v2.set(NA) vslabel = Label(info, text=" VS ") o1.grid(row=n, column=0, padx=4, pady=1) o2.grid(row=n, column=2, padx=4, pady=1) vslabel.grid(row=n, column=1, padx=4, pady=1) def savefunc(): info_text = StringIO() for v1, v2 in contrast_vars: v1 = v1.get() if v1.get() != NA else "" v2 = v2.get() if v2.get() != NA else "" if v1 and v2: pass elif v1 or v2: showerror('Error', "None or Both columns should be selected!") return else: continue print(v1, v2, file=info_text, sep="\t") fp = open(contrast_fn, 'w') fp.write(info_text.getvalue()) fp.close() def loadfunc(): #self.readpaste( filename, info_text ) for i, l in enumerate(open(contrast_fn)): v1, v2 = l.split('\t') v1 = v1.strip() v2 = v2.strip() if v1: try: assert v1 in groups except: showwarning( 'WARNING', 'Group name is not in the selection list!') print('v1:', v1) print('group:', groups) continue if v2: try: assert v2 in groups except: showwarning( 'WARNING', 'Group name is not in the selection list!') print('v2:', v2) print('group:', groups) continue contrast_vars[i][0].set(v1) contrast_vars[i][1].set(v2) def clearfunc(): for v1, v2 in contrast_vars: v1.set(NA) v2.set(NA) info_clear_button = Button(top, text="Clear", command=clearfunc) info_save_button = Button(top, text="Save", command=savefunc) info_load_button = Button(top, text="Load", command=loadfunc) #self.pairs_load_button.pack( side=BOTTOM, padx=5, pady=5 ) #self.pairs_save_button.pack( side=BOTTOM, padx=5, pady=5 ) info_clear_button.grid(row=5, column=3, padx=10, pady=5) info_load_button.grid(row=5, column=4, padx=10, pady=5) info_save_button.grid(row=5, column=5, padx=10, pady=5) info.grid(row=7, column=0, columnspan=6, sticky=W, padx=20, pady=10) top.focus_force()
def drug(): global t_id,t_name,t_formula,t_drug_cost global rootd,regform,id,name,formula,drug_cost,c1,c2,\ SUBMIT,back,SEARCH,DELETE,UPDATE, CLEAR global copy_of_image, label, rootd global l_drug_name, l_drug_formula, l_drug_id, l_drug_price, right_frame, tr, count rootd= Toplevel() rootd.title("DRUG FORM") rootd.configure(background='black') rootd.geometry("1920x1080") copy_of_image = Image.open("images/hospital.jpeg") photo = ImageTk.PhotoImage(copy_of_image) label = Label(rootd, image=photo) label.place(x=0, y=0, relwidth=1, relheight=1) label.bind('<Configure>', resize_image) center_frame = Frame(rootd, relief='raised', borderwidth=2) # center_frame.pack(fill=None, expand=False) center_frame.place(relx=0.1, rely=0.2, anchor=W) regform= Label(center_frame,text="DRUG FORM",font="helvetica 19 bold") regform.pack() id= Label(center_frame,text="DRUG ID") id.pack() t_id= Entry(center_frame) t_id.pack() name= Label(center_frame,text="DRUG NAME") name.pack() t_name = Entry(center_frame) t_name.pack() formula= Label(center_frame,text="FORMULA") formula.pack() t_formula= Entry(center_frame) t_formula.pack() drug_cost = Label(center_frame, text="DRUG COST") drug_cost.pack() t_drug_cost = Entry(center_frame) t_drug_cost.pack() SUBMIT = Button(center_frame, text=" SUBMIT ", command=IN_DRUG) SUBMIT.pack() back= Button(center_frame,text="<< BACK",command=ex) back.pack() CLEAR = Button(center_frame, text=" CLEAR ", command=clear_text) CLEAR.pack() CLEAR_TREE = Button(rootd, text=" Clear the table ", command=clear_tree) CLEAR_TREE.place() CLEAR_TREE.pack() # right_frame = Frame(rootd, relief='raised', borderwidth=3) # # center_frame.pack(fill=None, expand=False) # right_frame.place(relx=0.65, rely=0.15, anchor=E) style = Style() style.configure("BW.TLabel", foreground="white", background="black") x, y = 70, 20 # use tree view to show the data in forms of table # mention the number of columns tr = Treeview(rootd, columns=('A', 'B', 'C', 'D'), style="BW.TLabel", selectmode="extended") # heading key + text tr.heading('#0', text='Sr no') tr.column('#0', minwidth=0, width=100, stretch=NO) tr.heading('#1', text='Drug Name') tr.column('#1', minwidth=0, width=100, stretch=NO) tr.heading('#2', text='Drug Formula') tr.column('#2', minwidth=0, width=100, stretch=NO) tr.heading('#3', text='Drug Id') tr.column('#3', minwidth=0, width=100, stretch=NO) tr.heading('#4', text='Drug Price') tr.column('#4', minwidth=0, width=100, stretch=NO) show_records() tr.place(x=50, y=y + 50) tr.pack(expand=True, fill='y') # SEARCH= Button(center_frame,text=" SEARCH >> ",command=P_display) # SEARCH.pack() # DELETE= Button(center_frame,text=" DELETE ",command=D_display) # DELETE.pack() # UPDATE= Button(center_frame,text=" UPDATE ",command=P_UPDATE) # UPDATE.pack() rootd.mainloop()
def About(): popup = Toplevel() Label(popup, text="Recognition of Hand Drawn Flowcharts").grid(row=10, column=1)
def GenMap(gridsize, board, CellSize, EnemyLevel): """Create the map GUI gridsize: how big is the map board: a list of items on the map EnemyLeve: recommended 1-30, how tough are the bandits in this map""" def make_monster(): """Subfunction to make monsters""" return MakinMonsters(EnemyLevel=EnemyLevel) def make_booty(): """Subfunction to make loot""" return MakinRain() #create the GUI root master = Toplevel() frame = Frame(master, width=800, height=800) frame.grid(row=0, column=0) #create a canvas with scrollbars for the map to be built in w = Canvas(frame, width=gridsize * CellSize, height=gridsize * CellSize, background='#8c7f4e', scrollregion=(0, 0, gridsize * CellSize, gridsize * CellSize)) hbar = Scrollbar(frame, orient=HORIZONTAL) hbar.pack(side=BOTTOM, fill=X) hbar.config(command=w.xview) vbar = Scrollbar(frame, orient=VERTICAL) vbar.pack(side=RIGHT, fill=Y) vbar.config(command=w.yview) w.config(width=600, height=600) w.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) #import tile images stonepath = load_image_tile('stone path', CellSize) grass = load_image_tile('grass', CellSize) floor = load_image_tile('stone brick', CellSize) red_grass = load_image_tile('red grass', CellSize) yellow_grass = load_image_tile('yellow grass', CellSize) treasure = load_image_tile('treasure', CellSize) monster = load_image_tile('monster', CellSize) grasses = [yellow_grass, red_grass, grass] w.pack(fill=BOTH, expand=1) frame.pack(fill=BOTH, expand=1) #create an image or button for every tile in the map TY = 0 for row in board: TX = 0 for letter in row: if letter == 'O': w.create_rectangle(TX * CellSize, TY * CellSize, TX * CellSize + CellSize * .95, TY * CellSize + CellSize * .95, fill="#000000") elif letter == 'B': button1 = Button(master, text="T ", font=("Arial", int(CellSize / 3), "bold"), command=make_booty) button1.configure(width=CellSize * 0.9, height=CellSize * 0.9, activebackground="#33B5E5", relief=FLAT, image=treasure) w.create_window(TX * CellSize, TY * CellSize, anchor=NW, window=button1) # elif letter == 'P': w.create_image(TX * CellSize, TY * CellSize, image=stonepath, anchor=NW) elif letter == 'R': w.create_image(TX * CellSize, TY * CellSize, image=floor, anchor=NW) elif letter == 'O': w.create_rectangle(TX * CellSize, TY * CellSize, TX * CellSize + CellSize * .95, TY * CellSize + CellSize * .95, fill="#000000") elif letter == 'M': button1 = Button(master, text="M ", font=("Arial", int(CellSize / 3), "bold"), command=make_monster) button1.configure(width=CellSize * 0.90, height=CellSize * 0.90, activebackground="#33B5E5", relief=FLAT, image=monster) w.create_window(TX * CellSize, TY * CellSize, anchor=NW, window=button1) else: w.create_image(TX * CellSize, TY * CellSize, image=choice(grasses), anchor=NW) TX = TX + 1 TY = TY + 1 master.mainloop()
def send_command(command): global s commands = [ "Execute", "Brute Force", "Report Address", "Fingerprint OS", "Commit Suicide", "Send Email", "Slow Loris", "Reconnect", "Download File", "Profile Computer", "Scan Host", "Scan Network" ] output("Preparing to send command '" + commands[command] + "'") global child child = Toplevel(root) verbose = BooleanVar() verbose_label = Label(child, text="Verbose") verbose_box = Checkbutton(child, variable=verbose) if command is 0: com_label = Label(child, text="Command to Execute") com_label.grid(row=0, column=0) com_entry = Entry(child) com_entry.grid(row=0, column=1) verbose_label.grid(row=1, column=0) verbose_box.grid(row=1, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get( ) + " :COMMAND EXECUTE <<<" + com_entry.get() + ">>> " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=2, column=0, columnspan=2, sticky="NESW") elif command is 1: pass elif command is 2: verbose_label.grid(row=0, column=0) verbose_box.grid(row=0, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND ADDRESS " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=2, column=0, columnspan=2, sticky="NESW") elif command is 3: verbose_label.grid(row=0, column=0) verbose_box.grid(row=0, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND FINGERPRINT " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=2, column=0, columnspan=2, sticky="NESW") elif command is 4: verbose_label.grid(row=0, column=0) verbose_box.grid(row=0, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND KILL " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=2, column=0, columnspan=2, sticky="NESW") elif command is 5: sender_label = Label(child, text="Sender Email") sender_label.grid(row=0, column=0) sender_entry = Entry(child) sender_entry.grid(row=0, column=1) sender_password_label = Label(child, text="Sender Password") sender_password_label.grid(row=1, column=0) sender_password_entry = Entry(child, show="*") sender_password_entry.grid(row=1, column=1) recipient_label = Label(child, text="Recipient Email") recipient_label.grid(row=2, column=0) recipient_entry = Entry(child) recipient_entry.grid(row=2, column=1) subject_label = Label(child, text="Email Subject") subject_label.grid(row=3, column=0) subject_entry = Entry(child) subject_entry.grid(row=3, column=1) msg_label = Label(child, text="Email Contents", justify="center") msg_label.grid(row=4, column=0, columnspan=2, sticky="NESW") msg_entry = Text(child) msg_entry.grid(row=5, column=0, columnspan=2, sticky="NESW") verbose_label.grid(row=6, column=0) verbose_box.grid(row=6, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND EMAIL " + sender_entry.get() + " " + sender_password_entry. get() + " " + recipient_entry.get() + " " + subject_entry.get( ) + " <<<" + msg_entry.get("1.0", "end") + ">>> " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=7, column=0, columnspan=2, sticky="NESW") elif command is 6: host_label = Label(child, text="Host or Domain") host_entry = Entry(child) host_label.grid(row=0, column=0) host_entry.grid(row=0, column=1) loris_port_label = Label(child, text="Port") loris_port_spin = Spinbox(child, from_=0, to=65535, width=5) loris_port_spin.insert(0, 8) loris_port_label.grid(row=1, column=0) loris_port_spin.grid(row=1, column=1) randua_label = Label(child, text="Random User Agents") randua = BooleanVar() randua_box = Checkbutton(child, variable=randua) randua_label.grid(row=2, column=0) randua_box.grid(row=2, column=1) https = BooleanVar() https_label = Label(child, text="Use HTTPS") https_box = Checkbutton(child, variable=https) https_label.grid(row=3, column=0) https_box.grid(row=3, column=1) sock_count = IntVar() sockets_label = Label(child, text="Number of sockets") sockets_scale = Scale(child, variable=sock_count, orient="horizontal", from_=1, to=500) sockets_label.grid(row=4, column=0) sockets_scale.grid(row=4, column=1) verbose_label.grid(row=5, column=0) verbose_box.grid(row=5, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND SLOWLORIS " + host_entry.get() + " " + str(loris_port_spin.get()) + " " + ("TRUE" if randua else "FALSE") + " " + ("TRUE" if https else "FALSE") + " " + str(sock_count.get()) + " " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=6, column=0, columnspan=2, sticky="NESW") elif command is 7: verbose_label.grid(row=0, column=0) verbose_box.grid(row=0, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND RECONNECT " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=1, column=0, columnspan=2, sticky="NESW") elif command is 8: url_label = Label(child, text="Source URL") url_label.grid(row=0, column=0) url_entry = Entry(child) url_entry.grid(row=0, column=1) filename_label = Label(child, text="Filename") filename_label.grid(row=1, column=0) filename_entry = Entry(child) filename_entry.grid(row=1, column=1) verbose_label.grid(row=2, column=0) verbose_box.grid(row=2, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND DOWNLOAD " + url_entry.get() + " " + filename_entry.get() + " " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=3, column=0, columnspan=2, sticky="NESW") elif command is 9: verbose_label.grid(row=0, column=0) verbose_box.grid(row=0, column=1) submit = Button( child, width=35, text="Begin", command=lambda: s.send( ("PRIVMSG " + channel_entry.get() + " :COMMAND PROFILE " + ("VERBOSE" if verbose else "") + "\r\n").encode("UTF8"))) submit.grid(row=1, column=0, columnspan=2, sticky="NESW") elif command is 10: pass elif command is 11: pass
def __init__(self, master, Wid_type): """ This method opens coefficients window to get coefficients for Circle, Line and Rectangle and passes it to main window. """ # Intialize all the variables needed for the coefficients window. self.X1cord = None self.X2cord = None self.Y1cord = None self.Y2cord = None self.radius = None self.wid = Wid_type self.rb1 = None self.rb2 = None self.v = tk.IntVar() self.coordinates_window = None self.color = None self.dashed = None if Wid_type is not None: # Design the labels and textboxes and radio buttons for the coefficients window. self.coordinates_window = Toplevel(master) self.coordinates_window.title("Enter Co-ordinate Points") self.coordinates_window.geometry("500x100") self.coordinates_window.transient(master) self.coordinates_window.grab_set() lb1 = tk.Label(self.coordinates_window, text=' X1') lb1.grid(row=0) self.X1cord = tk.Entry(self.coordinates_window) self.X1cord.grid(row=0, column=1) lb2 = tk.Label(self.coordinates_window, text=' Y1') lb2.grid(row=0, column=2) self.Y1cord = tk.Entry(self.coordinates_window) self.Y1cord.grid(row=0, column=3) self.rb1 = tk.Radiobutton(self.coordinates_window, text="Dashed", variable=self.v, value=1) self.rb1.grid(row=2, column=0) self.rb2 = tk.Radiobutton(self.coordinates_window, text="Un Dashed", variable=self.v, value=2) self.rb2.grid(row=2, column=1) color = tk.Button(self.coordinates_window, text="Color", command=self.choose_color) color.grid(row=2, column=2) submit = tk.Button(self.coordinates_window, text="Submit", command=self.submit) submit.grid(row=3, column=1) reset = tk.Button(self.coordinates_window, text="Reset", command=self.reset) reset.grid(row=3, column=6) # when window type is 'Circle' then display a different design and different window for line and rectangle if Wid_type == "circle": rad_la = tk.Label(self.coordinates_window, text=' Enter Radius') rad_la.grid(row=1) self.radius = tk.Entry(self.coordinates_window) self.radius.grid(row=1, column=1) elif Wid_type == "line" or Wid_type == "rec": lb3 = tk.Label(self.coordinates_window, text=' X2') lb3.grid(row=1, column=0) self.X2cord = tk.Entry(self.coordinates_window) self.X2cord.grid(row=1, column=1) lb4 = tk.Label(self.coordinates_window, text=' Y2') lb4.grid(row=1, column=2) self.Y2cord = tk.Entry(self.coordinates_window) self.Y2cord.grid(row=1, column=3)
def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent #self.parent.attributes("-fullscreen", True) self.parent.geometry('500x500') self.parent.bind('<Escape>', quit) self.backGround = "#008000" self.foreGround = 'white' self.foreGround_2 = 'black' #self.yaziRengi = 'blue' #self.yaziTipi = "Helvetica 20 bold italic" self.parent.title('FEYS') self.font = ImageFont.truetype("conf/Colored_Crayons.ttf", 25) self.font_button = ImageFont.truetype("conf/Colored_Crayons.ttf", 21) self.parent.configure(background=self.backGround, cursor='none') ####### StringVars ####################### self.updateWrite1 = StringVar() self.updateWrite2 = StringVar() self.updateWrite3 = StringVar() self.updateWrite4 = StringVar() self.st = StringVar() self.geriSayim = StringVar() ####### pictures ####################### resimAdres = 'icons/' #self.board = PhotoImage(file = resimAdres+'board.png') self.amblem = PhotoImage(file=resimAdres + 'logo.png') self.undefinedCard = PhotoImage(file=resimAdres + "tanımsız_kart.png") self.no_wifi = PhotoImage(file=resimAdres + "no_wifi.png") self.earlyExit = PhotoImage(file=resimAdres + "early_exit.png") self.noLogin = PhotoImage(file=resimAdres + "no_login.png") self.hata_ret = PhotoImage(file=resimAdres + "hata_resmi.png") self.welcome = PhotoImage(file=resimAdres + "welcome.png") self.byebye = PhotoImage(file=resimAdres + "byebye.png") self.red = PhotoImage(file=resimAdres + "rd.png") self.green = PhotoImage(file=resimAdres + "gr.png") self.giris_ret = PhotoImage(file=resimAdres + "giris.png") self.cikis_ret = PhotoImage(file=resimAdres + "cikis.png") self.aboutPhoto = PhotoImage(file=resimAdres + "hakkinda.png") #Tanimlamalar config.read(configDosyasiAdres) sleep(int(config['veri']['popupSuresi'])) ######################################## self.dummy = None self.araDegisken = 1 self.araDegisken2 = 1 self.izinAraDegisken = 1 self.yoklamayaIzinVerme = False # ana fonksiyonda yok izni açıp kapamada kullanılıyor self.deger = '' # numara girmek için kullanılıyor self.last_uuid = False self.pencere = Toplevel() self.pencere.destroy() self.kalanSaat = None self.ErkenCikis = False self.ErkenCikisDersBitmeSaati = False self.dakikaAyar = 61 self.dersAyar = 'giris_cikis_ara' self.ders_kismi = 'empty' self.mainScreen()
def startPVmodule_tk(self): top = Toplevel() app = PVmodule_tk(self, top) app.mainloop() # please destroy me or I'll continue to run in background top.destroy()
def admin_panel(self): self.ek_screen = Toplevel() self.ek_screen.attributes("-fullscreen", True) self.ek_screen.title('FEYS') self.ek_screen.bind('<Escape>', quit) self.ek_screen.configure(background=self.backGround, cursor='none') self.adminButton0 = Button(self.ek_screen, text='Veritabanı güncellemesi', bg=self.backGround, wraplength=750, anchor="center", height=6, width=44, highlightbackground="black", command=self.menuGuncellemesi, font="Helvetica 11 bold italic", fg='white') self.adminButton0.grid(row=0, column=0, sticky=W, padx=18, pady=0, columnspan=1, rowspan=1) self.adminButton1 = Button(self.ek_screen, text='Değişken güncellemesi', bg=self.backGround, wraplength=750, anchor="center", height=6, width=44, highlightbackground="black", command=self.menuGuncellemesi, font="Helvetica 11 bold italic", fg='white') self.adminButton1.grid(row=0, column=0, sticky=W, padx=404, pady=0, columnspan=1, rowspan=1) self.adminButton2 = Button(self.ek_screen, text='Kayıt ekle / sil', bg=self.backGround, wraplength=750, anchor="center", height=6, width=92, highlightbackground="black", command=self.girisYapanlar, font="Helvetica 11 bold italic", fg='white') self.adminButton2.grid(row=1, column=0, sticky=W, padx=18, pady=8, columnspan=1, rowspan=1) self.adminButton3 = Button(self.ek_screen, text='Hakkında', bg=self.backGround, wraplength=750, anchor="center", height=6, width=92, highlightbackground="black", command=self.hakkinda, font="Helvetica 11 bold italic", fg='white') self.adminButton3.grid(row=2, column=0, sticky=W, padx=18, pady=5, columnspan=1, rowspan=1) self.adminButton4 = Button(self.ek_screen, text='Çıkış', bg=self.backGround, wraplength=750, anchor="center", height=5, width=92, highlightbackground="black", command=self.admin_panel_cikis, font="Helvetica 11 bold italic", fg='white') self.adminButton4.grid(row=3, column=0, sticky=W, padx=18, pady=5, columnspan=1, rowspan=1)
def create_dialog(mr: MetaRecord) -> Toplevel: window = Toplevel() RebuildDialog(window, mr) window.title("MetaRecord Rebuilder") return window
def on_closing(self): f = open('Score.txt', 'a') f.write( str(self.score_of_player.sum_points) + " " + "\n" + str(self.time_of_beginning) + "\n" + str(time.perf_counter()) + "\n") f.close() self.root.protocol('WM_DELETE_WINDOW', self.root.destroy) game = GameWithBalls( root, canvas) # main part, creation of the game, ask information about player root_names = Toplevel(root) root_names.title("Name_of_player") Label(root_names, text="Do you want to remember your score?" + " " + "\n Put your name, if yes.").grid(row=0, column=1, columnspan=2, sticky=W) Label(root_names, text="Your name:").grid(row=1, column=0, sticky=W, padx=10, pady=10) table_name = Entry(root_names) table_name.grid(row=1, column=1, columnspan=2, sticky=W + E, padx=10)
import sys from tkinter import Toplevel, Button, Label win1 = Toplevel() win2 = Toplevel() Button(win1, text='Spam', command=sys.exit).pack() Button(win2, text='SPAM', command=sys.exit).pack() Label(text='Popups').pack() # по умолчанию добавляется в корневое окно Tk() win1.mainloop()
def show_register(self): register_form = Toplevel() RegisterForm(register_form)
def players_stats(fenetremain, Joueurs, label_disp, comboj, dic_clubs_id, main_menu_font): club = label_disp["text"] joueur = comboj.get() fenetre_player = Toplevel(fenetremain) fenetre_player.title(f"Fiche détaillée de {joueur}") width = 1920 height = 1080 fenetre_player.geometry(f'{width}x{height}+0+0') fenetre_player.minsize(width // 2, 1080 // 2) fenetre_player.resizable(0, 0) fenetre_player.bind( "<F11>", lambda event: fenetre_player.attributes( "-fullscreen", not fenetre_player.attributes("-fullscreen"))) fenetre_player.bind( "<Escape>", lambda event: fenetre_player.attributes("-fullscreen", False)) fenetre_player.iconphoto(True, PhotoImage(file='images/icones/root_icone.png')) background_image = PhotoImage( file=r"images/backgrounds/pitch_vertical.png") can = Canvas(fenetre_player, width=width, height=height, bg="#1B0C43") can.pack() can.create_image(1920 - 400, 1080 // 2, image=background_image) conn = sqlite3.connect(f'databases/alldata.db') c = conn.cursor() stats = c.execute( '''SELECT LS,ST,RS,LW,LF,CF,RF,RW,LAM,CAM,RAM,LM,LCM,CM,RCM,RM,LWB,LDM,CDM,RDM,RWB,LB,LCB,CB,RCB,RB,GK, PAC,SHO,PAS,DRI,DEF,PHY, ID, Crossing,Finishing,HeadingAccuracy,ShortPassing,Volleys,Dribbling,Curve,FKAccuracy,LongPassing,BallControl,Acceleration,SprintSpeed, Agility,Reactions,Balance,ShotPower,Jumping,Stamina,Strength,LongShots,Aggression,Interceptions,Positioning,Vision,Penalties,Composure, Marking,StandingTackle,SlidingTackle ,Nationality, Club, WF,SM,IR FROM Players WHERE Club = ? AND Name = ?''', ( club, joueur, )) for row in stats.fetchall(): LS = [row[0].rsplit('+', 1)[0]] ST = [row[1].rsplit('+', 1)[0]] RS = [row[2].rsplit('+', 1)[0]] LW = [row[3].rsplit('+', 1)[0]] LF = [row[4].rsplit('+', 1)[0]] CF = [row[5].rsplit('+', 1)[0]] RF = [row[6].rsplit('+', 1)[0]] RW = [row[7].rsplit('+', 1)[0]] LAM = [row[8].rsplit('+', 1)[0]] CAM = [row[9].rsplit('+', 1)[0]] RAM = [row[10].rsplit('+', 1)[0]] LM = [row[11].rsplit('+', 1)[0]] LCM = [row[12].rsplit('+', 1)[0]] CM = [row[13].rsplit('+', 1)[0]] RCM = [row[14].rsplit('+', 1)[0]] RM = [row[15].rsplit('+', 1)[0]] LWB = [row[16].rsplit('+', 1)[0]] LDM = [row[17].rsplit('+', 1)[0]] CDM = [row[18].rsplit('+', 1)[0]] RDM = [row[19].rsplit('+', 1)[0]] RWB = [row[20].rsplit('+', 1)[0]] LB = [row[21].rsplit('+', 1)[0]] LCB = [row[22].rsplit('+', 1)[0]] CB = [row[23].rsplit('+', 1)[0]] RCB = [row[24].rsplit('+', 1)[0]] RB = [row[25].rsplit('+', 1)[0]] GK = [row[26].rsplit('+', 1)[0]] PAC, SHO, PAS, DRI, DEF, PHY = row[27], row[28], row[29], row[30], row[ 31], row[32] joueur_ID = row[33] # pays = row[63] club = row[64] id_ecu = dic_clubs_id[f'{club}'] weakfoot = row[65].rsplit('★', 1)[0] skillmoves = row[66].rsplit('★', 1)[0] reputation = row[67].rsplit('★', 1)[0] dicstats = { "Centres": int(row[34]), "Finition": int(row[35]), "Têtes": int(row[36]), "Passes Courtes": int(row[37]), "Volées": int(float(row[38])), "Dribbles": int(row[39]), "Tirs Enroulés": int(float(row[40])), "Précision CF": int(row[41]), "Passes Longues": int(row[42]), "Contrôles": int(row[43]), "Accélérations": int(row[44]), "Sprints": int(row[45]), "Agilité": int(float(row[46])), "Réactivité": int(row[47]), "Equilibre": int(float(row[48])), "Puissance Tirs": int(row[49]), "Sauts": int(float(row[50])), "Stamina": int(row[51]), "Force": int(row[52]), "Tirs Lointains": int(row[53]), "Aggressivité": int(row[54]), "Interceptions": int(float(row[55])), "Positionnement": int(float(row[56])), "Vista": int(float(row[57])), "Tirs Aux Buts": int(row[58]), "Calme": int(float(row[59])), "Marquage": int(row[60]), "Tacles Debout": int(row[61]), "Tacles Glissés": int(float(row[62])) } l = len(dicstats) r = int(math.floor(math.sqrt(28))) + 3 t1, t2 = divmod(l, r) c = t1 + (1 if t2 != 0 else 0) # print(r,c) fig1, axes = plt.subplots(nrows=r, ncols=c, figsize=(3.8, 5.5)) fig1.subplots_adjust(hspace=1.1) fig1.subplots_adjust(wspace=1.35) plt.rcParams['axes.titlecolor'] = 'white' colors = ['none', 'none'] for n, k in enumerate(dicstats.keys()): sizes = [100 - dicstats[f'{k}'], dicstats[f'{k}']] if sizes[1] > 80: colors[1] = "#96DC02" elif sizes[1] > 70: colors[1] = "#D29834" else: colors[1] = "#9C3C4A" i, j = divmod(n, c) ax = axes[i][j] ax.pie(sizes, colors=colors, shadow=False, startangle=90) centre_circle = plt.Circle((0, 0), 0.75, edgecolor='none', fill=False, linewidth=0) my_circle = plt.Circle((0, 0), 0.75, color='#1B0C43') ax.add_artist(centre_circle) ax.add_artist(my_circle) ax.axis( 'equal' ) # Equal aspect ratio ensures that pie is drawn as a circle. ax.set_title(k, fontsize=8) ax.set_frame_on(False) ax.text(-0.50, -0.25, str(dicstats[f'{k}']), color='white', fontsize=7) n0 = n + 1 for n in range(n0, r * c): i, j = divmod(n, c) ax = axes[i][j] fig1.delaxes(ax) plotsavepathbarh = f"temp/attributs_de_{joueur}.png" plt.savefig(plotsavepathbarh, transparent=True, dpi=192) plt.close() postes = [ LS, ST, RS, LW, LF, CF, RF, RW, LAM, CAM, RAM, LM, LCM, CM, RCM, RM, LWB, LDM, CDM, RDM, RWB, LB, LCB, CB, RCB, RB, GK ] for p in postes: if int(p[0]) >= 90: color = "green" elif int(p[0]) >= 84: color = "#5BAE00" elif int(p[0]) >= 80: color = "#95CA00" elif int(p[0]) >= 77: color = "#AFD700" elif int(p[0]) >= 75: color = "#BFDF00" elif int(p[0]) >= 70: color = "#D9EC00" elif int(p[0]) >= 65: color = "#FFDF00" elif int(p[0]) >= 50: color = "#FFB200" elif int(p[0]) >= 35: color = "#FF7B00" elif int(p[0]) >= 20: color = "#EB0000" else: color = "#A60000" p.append(color) player_mean = (PAC + SHO + PAS + DRI + DEF + PHY) // 6 color = levelcolor(player_mean) df = pd.DataFrame({ 'group': ['stats'], 'PAC': [PAC], 'SHO': [SHO], 'PAS': [PAS], 'DRI': [DRI], 'DEF': [DEF], 'PHY': [PHY], }) categories = list(df)[1:] N = len(categories) values = df.loc[0].drop('group').values.flatten().tolist() values += values[:1] angles = [n / float(N) * 2 * pi for n in range(N)] angles += angles[:1] ax = plt.subplot(111, polar=True) plt.xticks(angles[:-1], categories, color='white', size=8) ax.set_rlabel_position(0) plt.yticks([20, 40, 60, 80], ["20", "40", "60", "80"], color="white", size=7) plt.ylim(0, 100) ax.plot(angles, values, linewidth=1, linestyle='solid', color=color) ax.fill(angles, values, 'b', alpha=0.1, facecolor=color) plotsavepathspider = f"temp/spider_plot_de_{joueur}.png" plt.savefig(plotsavepathspider, transparent=True, dpi=128) # plt.show() plt.close() LCx1, LCy1, LCx2, LCy2 = 1280, 130, 1360, 210 Cx1, Cy1, Cx2, Cy2 = LCx1 + 200, LCy1, LCx2 + 200, LCy2 RCx1, RCx2 = Cx1 + 200, Cx2 + 200 imageFlag = imageEnhancer(f'images/ecussons/{id_ecu}.png', 340) try: imPlayer = Image.open(f'images/players/{joueur_ID}.png') except: imPlayer = Image.open(f'images/icones/player_icone.png') imPlayer = ImageEnhance.Brightness(imPlayer) imPlayer = imPlayer.enhance(1.1) imPlayer = imPlayer.resize((200, 200)) imagePlayer = ImageTk.PhotoImage(imPlayer) can.create_rectangle(0, 0, 420, 1080, fill='#3C1B94') can.create_rectangle(210 - 103, 175 - 103, 210 + 103, 175 + 103, fill='white') # can.create_rectangle(145-100,145-100,145+100,145+100, fill = '#322654') can.create_image(210, 175, image=imageFlag) can.create_image(210, 175, image=imagePlayer) roundschart = ImageTk.PhotoImage(Image.open(f"{plotsavepathbarh}")) can.create_image(758, 560, image=roundschart) jchart_spi = ImageTk.PhotoImage( Image.open(rf"{plotsavepathspider}").resize((615, 445))) can.create_image(202, 500, image=jchart_spi) # PAC,SHO,PAS,DRI,DEF,PHY x = 285 y = 740 stas_font2 = tkFont.Font(family='Helvetica', size=20) can.create_text(x, y, text=f'Vitesse : {PAC}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) can.create_text(x, y + 50, text=f'Frappes : {SHO}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) can.create_text(x, y + 100, text=f'Passes : {PAS}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) can.create_text(x, y + 150, text=f'Dribbles : {DRI}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) can.create_text(x, y + 200, text=f'Défense : {DEF}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) can.create_text(x, y + 250, text=f'Physique : {PHY}', font=stas_font2, fill='#E8E6EC', anchor=tk.E) stats_font = tkFont.Font(family='DejaVu Sans', size=16) can.create_text(682 + 5, 881, text='Pied Faible', font=stats_font, fill='#E8E6EC') can.create_text(848 + 5, 881, text='Gestes Techniques', font=stats_font, fill='#E8E6EC') can.create_text(1014 + 5, 881, text='Réputation', font=stats_font, fill='#E8E6EC') star = ImageTk.PhotoImage( Image.open(f"images/icones/star.png").resize((75, 75))) can.create_image(682 + 5, 930, image=star) can.create_image(848 + 5, 930, image=star) can.create_image(1014 + 5, 930, image=star) can.create_text(683 + 5, 930.5, text=weakfoot, font=main_menu_font) can.create_text(849 + 5, 930.5, text=skillmoves, font=main_menu_font) can.create_text(1015 + 5, 930.5, text=reputation, font=main_menu_font) can.create_oval(LCx1, LCy1, LCx2, LCy2, outline='white', width=2, fill=LS[1]) can.create_text((LCx2 + LCx1) // 2, (LCy2 + LCy1) // 2, text=LS[0], fill='white', font=main_menu_font) can.create_oval(Cx1, 100, Cx2, 180, outline='white', width=2, fill=ST[1]) can.create_text((Cx2 + Cx1) // 2, 140, text=ST[0], fill='white', font=main_menu_font) can.create_oval(RCx1, LCy1, RCx2, LCy2, outline='white', width=2, fill=RS[1]) can.create_text((RCx2 + RCx1) // 2, (LCy2 + LCy1) // 2, text=RS[0], fill='white', font=main_menu_font) can.create_oval(LCx1 - 80, (Cy1 + Cy2) // 2 + 0.75 * LCy1, LCx1, (Cy1 + Cy2) // 2 + 0.75 * LCy1 + 80, outline='white', width=2, fill=LW[1]) can.create_text(LCx1 - 40, (LCy2 + LCy1) // 2 + 0.75 * LCy1 + 40, text=LW[0], fill='white', font=main_menu_font) can.create_oval(LCx1 + 60, (Cy1 + Cy2) // 2 + LCy1, LCx2 + 60, (Cy1 + Cy2) // 2 + LCy1 + 80, outline='white', width=2, fill=LF[1]) can.create_text(LCx1 + 100, (LCy2 + LCy1) // 2 + LCy1 + 40, text=LF[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 0.75 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 0.75 * LCy1 + 80, outline='white', width=2, fill=CF[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 0.75 * LCy1 + 40, text=CF[0], fill='white', font=main_menu_font) can.create_oval(Cx2 + 60, (Cy1 + Cy2) // 2 + LCy1, Cx2 + 140, (Cy1 + Cy2) // 2 + LCy1 + 80, outline='white', width=2, fill=RF[1]) can.create_text(Cx2 + 100, (LCy2 + LCy1) // 2 + LCy1 + 40, text=RF[0], fill='white', font=main_menu_font) can.create_oval(RCx1 + 80, (Cy1 + Cy2) // 2 + 0.75 * LCy1, RCx2 + 80, (Cy1 + Cy2) // 2 + 0.75 * LCy1 + 80, outline='white', width=2, fill=RW[1]) can.create_text(RCx1 + 120, (LCy2 + LCy1) // 2 + 0.75 * LCy1 + 40, text=RW[0], fill='white', font=main_menu_font) can.create_oval(LCx1, (Cy1 + Cy2) // 2 + 2 * LCy1, LCx2, (Cy1 + Cy2) // 2 + 2 * LCy1 + 80, outline='white', width=2, fill=LAM[1]) can.create_text((LCx2 + LCx1) // 2, (LCy2 + LCy1) // 2 + 2 * LCy1 + 40, text=LAM[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 2 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 2 * LCy1 + 80, outline='white', width=2, fill=CAM[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 2 * LCy1 + 40, text=CAM[0], fill='white', font=main_menu_font) can.create_oval(RCx1, (Cy1 + Cy2) // 2 + 2 * LCy1, RCx2, (Cy1 + Cy2) // 2 + 2 * LCy1 + 80, outline='white', width=2, fill=RAM[1]) can.create_text((RCx2 + RCx1) // 2, (LCy2 + LCy1) // 2 + 2 * LCy1 + 40, text=RAM[0], fill='white', font=main_menu_font) can.create_oval(LCx1 - 80, (Cy1 + Cy2) // 2 + 2.75 * LCy1, LCx1, (Cy1 + Cy2) // 2 + 2.75 * LCy1 + 80, outline='white', width=2, fill=LM[1]) can.create_text(LCx1 - 40, (LCy2 + LCy1) // 2 + 2.75 * LCy1 + 40, text=LM[0], fill='white', font=main_menu_font) can.create_oval(LCx1 + 60, (Cy1 + Cy2) // 2 + 3 * LCy1, LCx2 + 60, (Cy1 + Cy2) // 2 + 3 * LCy1 + 80, outline='white', width=2, fill=LCM[1]) can.create_text(LCx1 + 100, (LCy2 + LCy1) // 2 + 3 * LCy1 + 40, text=LCM[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 3 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 3 * LCy1 + 80, outline='white', width=2, fill=CM[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 3 * LCy1 + 40, text=CM[0], fill='white', font=main_menu_font) can.create_oval(Cx2 + 60, (Cy1 + Cy2) // 2 + 3 * LCy1, Cx2 + 140, (Cy1 + Cy2) // 2 + 3 * LCy1 + 80, outline='white', width=2, fill=RCM[1]) can.create_text(Cx2 + 100, (LCy2 + LCy1) // 2 + 3 * LCy1 + 40, text=RCM[0], fill='white', font=main_menu_font) can.create_oval(RCx1 + 80, (Cy1 + Cy2) // 2 + 2.75 * LCy1, RCx2 + 80, (Cy1 + Cy2) // 2 + 2.75 * LCy1 + 80, outline='white', width=2, fill=RM[1]) can.create_text(RCx1 + 120, (LCy2 + LCy1) // 2 + 2.75 * LCy1 + 40, text=RM[0], fill='white', font=main_menu_font) can.create_oval(LCx1 - 80, (Cy1 + Cy2) // 2 + 3.75 * LCy1, LCx1, (Cy1 + Cy2) // 2 + 3.75 * LCy1 + 80, outline='white', width=2, fill=LWB[1]) can.create_text(LCx1 - 40, (LCy2 + LCy1) // 2 + 3.75 * LCy1 + 40, text=LWB[0], fill='white', font=main_menu_font) can.create_oval(LCx1 + 60, (Cy1 + Cy2) // 2 + 4 * LCy1, LCx2 + 60, (Cy1 + Cy2) // 2 + 4 * LCy1 + 80, outline='white', width=2, fill=LDM[1]) can.create_text(LCx1 + 100, (LCy2 + LCy1) // 2 + 4 * LCy1 + 40, text=LDM[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 4 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 4 * LCy1 + 80, outline='white', width=2, fill=CDM[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 4 * LCy1 + 40, text=CDM[0], fill='white', font=main_menu_font) can.create_oval(Cx2 + 60, (Cy1 + Cy2) // 2 + 4 * LCy1, Cx2 + 140, (Cy1 + Cy2) // 2 + 4 * LCy1 + 80, outline='white', width=2, fill=RDM[1]) can.create_text(Cx2 + 100, (LCy2 + LCy1) // 2 + 4 * LCy1 + 40, text=RDM[0], fill='white', font=main_menu_font) can.create_oval(RCx1 + 80, (Cy1 + Cy2) // 2 + 3.75 * LCy1, RCx2 + 80, (Cy1 + Cy2) // 2 + 3.75 * LCy1 + 80, outline='white', width=2, fill=RWB[1]) can.create_text(RCx1 + 120, (LCy2 + LCy1) // 2 + 3.75 * LCy1 + 40, text=RWB[0], fill='white', font=main_menu_font) can.create_oval(LCx1 - 80, (Cy1 + Cy2) // 2 + 5 * LCy1, LCx1, (Cy1 + Cy2) // 2 + 5 * LCy1 + 80, outline='white', width=2, fill=LB[1]) can.create_text(LCx1 - 40, (LCy2 + LCy1) // 2 + 5 * LCy1 + 40, text=LB[0], fill='white', font=main_menu_font) can.create_oval(LCx1 + 60, (Cy1 + Cy2) // 2 + 5.2 * LCy1, LCx2 + 60, (Cy1 + Cy2) // 2 + 5.2 * LCy1 + 80, outline='white', width=2, fill=LCB[1]) can.create_text(LCx1 + 100, (LCy2 + LCy1) // 2 + 5.2 * LCy1 + 40, text=LCB[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 5.2 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 5.2 * LCy1 + 80, outline='white', width=2, fill=CB[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 5.2 * LCy1 + 40, text=CB[0], fill='white', font=main_menu_font) can.create_oval(Cx2 + 60, (Cy1 + Cy2) // 2 + 5.2 * LCy1, Cx2 + 140, (Cy1 + Cy2) // 2 + 5.2 * LCy1 + 80, outline='white', width=2, fill=RCB[1]) can.create_text(Cx2 + 100, (LCy2 + LCy1) // 2 + 5.2 * LCy1 + 40, text=RCB[0], fill='white', font=main_menu_font) can.create_oval(RCx1 + 80, (Cy1 + Cy2) // 2 + 5 * LCy1, RCx2 + 80, (Cy1 + Cy2) // 2 + 5 * LCy1 + 80, outline='white', width=2, fill=RB[1]) can.create_text(RCx1 + 120, (LCy2 + LCy1) // 2 + 5 * LCy1 + 40, text=RB[0], fill='white', font=main_menu_font) can.create_oval(Cx1, (Cy1 + Cy2) // 2 + 6.1 * LCy1, Cx2, (Cy1 + Cy2) // 2 + 6.1 * LCy1 + 80, outline='white', width=2, fill=GK[1]) can.create_text((Cx2 + Cx1) // 2, (LCy2 + LCy1) // 2 + 6.1 * LCy1 + 40, text=GK[0], fill='white', font=main_menu_font) conn.close() fenetre_player.mainloop()
def new_window(self): self.newWindow = Toplevel(self.root)
def new_window(): """create a new GUI for the creature, monster or bandit""" MonsterType = randint(0, 2) #choose creature, monster, or bandit if MonsterType == 0: Monster1 = choice(MISCELL_CREATURES) master = Toplevel() background = Image.open('Maps/PathPictures/Monster_Manual.jpg') background = background.resize((600, 300)) background = ImageTk.PhotoImage(background) m = Canvas(master, width=640, height=340, background="black") m.create_image(20, 20, image=background, anchor=NW) text1 = "Miscellaneous Creature\n" for i in Monster1: text1 += str(i) + '\n' m.create_text(20, 20, text=(text1), anchor=NW, fill="white", font=("Arial", 14, "bold", "underline")) m.pack() elif MonsterType == 1: Monster1 = choice(MONSTERS) master = Toplevel() background = Image.open('Maps/PathPictures/Misc_Creature.png') background = background.resize((600, 300)) background = ImageTk.PhotoImage(background) m = Canvas(master, width=640, height=340, background="black") m.create_image(20, 20, image=background, anchor=NW) text1 = "Monster Creature\n" for i in Monster1: text1 += str(i) + '\n' m.create_text(20, 20, text=(text1), anchor=NW, fill="black", font=("Arial", 14, "bold", "underline")) m.pack() else: def rand_spell(): """Function used to lookup D&D spell descriptions""" spells = [] spellbook = create_spellbook() for spell_level in spell_levels: spells.extend(spellbook[spellbook["Level"] == spell_level].values.tolist()) spell = choice(spells) try: spell = [str(x).replace("nan", "") for x in spell] except IndexError: return spell_des = spell[0] + "\n" + spell[1] + "\n" + spell[2] + \ "\n" + spell[3] + "\n" + spell[4] + "\n" + spell[5] +\ "\n" + spell[6] + "\n\n" + spell[7] + "\n" + spell[8] \ + "\n" + spell[9] + "\n" + spell[10] + "\n" + spell[11] return spell[0], spell_des CharBackground = choice(NPC_BACKGROUND) cast_level = ceil(EnemyLevel / 2) spell_levels = [ str('Level: ' + str(x)) for x in range(1, cast_level) ] spell1, sct1 = rand_spell() spell2, sct2 = rand_spell() spell3, sct3 = rand_spell() Weapon = [["Club", 4], ["Dagger", 4], ["Greatclub", 8], ["Handaxe", 6], ["Javelin", 6], ["Light Hammer", 4], ["Mace", 6], ["Quarterstaff", 6], ["Sickle", 4], ["Spear", 6], ["Crossbow, light", 8], ["Dart", 4], ["Shortbow", 6], ["Sling", 4], ["Battleaxe", 8], ["Flail", 8], ["Glaive", 10], ["Greataxe", 12], ["Greatsword", 6], ["Halberd", 10], ["Lance", 12], ["Longsword", 8], ["Maul", 6], ["Morningstar", 8], ["Pike", 10], ["Rapier", 8], ["Scimitar", 6], ["Shortsword", 6], ["Trident", 6]] humanoids = [Barbarian, Bard, Cleric, Druid, Fighter, \ Paladin, Rogue, Ranger, Wizard, Warlock, \ Sorcerer] races = [Human, HillDwarf, MountainDwarf, HighElf, \ WoodElf, ForestGnome, RockGnome, \ LightfootHalfling, StoutHalfling, \ Dragonborn, HalfElf, HalfOrc, \ InfernalTiefling] humanoid = choice(humanoids) race = choice(races) armorclass = choice(range(10, 25)) char = humanoid(race=race, level=EnemyLevel) WeaponPick = choice(range(0, len(Weapon))) name = " ".join([ 'A', 'Random', CharBackground[0], race.__name__, humanoid.__name__ ]) master = Toplevel() background = Image.open('Maps/PathPictures/bandits.jpg') background = background.resize((125, 125)) background = ImageTk.PhotoImage(background) def close_windows(): """Bandit kill button""" master.destroy() def remove_hit_points(): """Built in hitpoint calculator""" damage = w.CurrentHits.get() if damage == "": damage = 0 ct = int(w.Hits.get()) - int(damage) w.Hits.delete(0, 'end') w.Hits.insert(0, str(ct)) def lookupspell(): """Lookup the bandits spells""" master = Tk() Spellcanvas1 = Canvas(master, width=500, height=400) master.wm_title(spell1) Spellcanvas1.create_text(20, 20, text=sct1, width=400, anchor=NW) Spellcanvas1.pack(fill=BOTH, expand=YES) master = Tk() Spellcanvas2 = Canvas(master, width=500, height=400) master.wm_title(spell2) Spellcanvas2.create_text(20, 20, text=sct2, width=400, anchor=NW) Spellcanvas2.pack(fill=BOTH, expand=YES) master = Tk() Spellcanvas3 = Canvas(master, width=500, height=400) master.wm_title(spell3) Spellcanvas3.create_text(20, 20, text=sct3, width=400, anchor=NW) Spellcanvas3.pack(fill=BOTH, expand=YES) w = Canvas(master, width=500, height=250) master.wm_title(name) w.pack() w.create_image(250, 125, image=background) w.create_text(20, 20, text=str(Weapon[WeaponPick][0]) + " Damage Die = d" + str(Weapon[WeaponPick][1]), anchor=W, font=(36), width=800) w.create_text(20, 40, text=str(armorclass) + ' = Armor Class', anchor=W, font=(36), width=800) w.create_text(20, 60, text=str(char.hit_points) + ' = Max Hit Points', anchor=W, font=(36), width=800) w.create_text(20, 80, text=str(char.strength) + ' = strength', anchor=W, font=(36), width=800) w.create_text(20, 100, text=str(char.dexterity) + ' = dexterity', anchor=W, font=(36), width=800) w.create_text(20, 120, text=str(char.constitution) + ' = constitution', anchor=W, font=(36), width=800) w.create_text(20, 140, text=str(char.intelligence) + ' = intelligence', anchor=W, font=(36), width=800) w.create_text(20, 160, text=str(char.wisdom) + ' = wisdom', anchor=W, font=(36), width=800) w.create_text(20, 180, text=str(char.charisma) + ' = charisma', anchor=W, font=(36), width=800) w.create_text(460, 20, text='Spells', anchor=E, font=(36), width=800) w.create_text(480, 40, text=spell1, anchor=E, font=(36), width=800) w.create_text(480, 60, text=spell2, anchor=E, font=(36), width=800) w.create_text(480, 80, text=spell3, anchor=E, font=(36), width=800) killbutton1 = Button(master, text="kill", command=close_windows) killbutton1.pack() removehitpointsbutton2 = Button(master, text="Remove Hit Points", command=remove_hit_points) removehitpointsbutton2.pack() spelllookupbutton = Button(master, text="Look up spells", command=lookupspell) spelllookupbutton.place(x=480, y=120, anchor=E) w.CurrentHits = Entry(master, width=25) w.CurrentHits.pack() w.Hits = Entry(master, width=25) w.Hits.insert(0, char.hit_points) w.Hits.pack() mainloop()
def easy_report(df, cinemas, films, dicts): """ интерфейс выбора параметров простого отчета """ report = Toplevel() options = [item for item in df] values = [] values_widgets = [] count = 0 value_var = IntVar() value_var.set(0) for item in options[:-1]: Radiobutton(report, text=item, variable=value_var, value=count, command=lambda num=value_var, w=values_widgets: trace_rb(num, w)) \ .grid(column=0, row=count, padx=(15, 5), pady=5, sticky='w') values.append(StringVar()) if item == 'Кинотеатр': e = Combobox(report, values=[row[0] for index, row in cinemas.iterrows()], textvariable=values[count]) elif item == 'Фильм': e = Combobox(report, values=[row[0] for index, row in films.iterrows()], textvariable=values[count]) elif item == 'Класс': e = Combobox(report, values=dicts['class'], textvariable=values[count]) elif item == '3D': e = Combobox(report, values=dicts['3D'], textvariable=values[count]) elif item == 'Статус': e = Combobox(report, values=dicts['status'], textvariable=values[count]) else: e = Entry(report, textvariable=values[count]) try: e.current(0) except: pass e.grid(column=1, row=count, padx=(15, 5), pady=5, sticky='e') values_widgets.append(e) count += 1 trace_rb(IntVar(0), values_widgets) btnOk = Button( report, text='Сформировать', width=15, command=lambda data=df, column=options, v1=values, v2=value_var, fr= report: make_easy_report(df, column, v1, v2, fr)) btnOk.grid(column=0, row=count + 1, padx=10, pady=10) btnCancel = Button(report, text='Отменить', width=12, command=lambda: report.destroy()) btnCancel.grid(column=1, row=count + 1, padx=10, pady=15)
def endTurn(): global userTurn global points global players global allPLastRound global newScoringDie global lockedInDie global dice global rerolledDice global aiFarkled if players[0].playerNamesAndScores[userTurn] == 0 and points < 999 and not rollAllB["background"] == "Red": notificationL.config(text="You have not yet rolled enough points to enter the game, you must keep rolling!") notificationLabelFrame.pack() else: if rollAllB["background"] == "Red": # Resetting all things rollAllB.config(background="Grey", command=lambda: rollAll(True)) points = 0 allPLastRound = False newScoringDie = False lockedInDie = {1: False, 2: False, 3: False, 4: False, 5: False, 6: False} dice = [0, 0, 0, 0, 0, 0] rerolledDice = [] directory1 = os.path.dirname(os.path.realpath(__file__)) imagePath1 = os.path.join(directory1, "b.png") imageBlank = Image.open(str(imagePath1)) blankP = ImageTk.PhotoImage(imageBlank) dieL1 = Label(gameFrame2, image=blankP) dieL1.image = blankP dieL1.grid(row=0, column=0) dieL2 = Label(gameFrame2, image=blankP) dieL2.image = blankP dieL2.grid(row=0, column=1) dieL3 = Label(gameFrame2, image=blankP) dieL3.image = blankP dieL3.grid(row=0, column=2) dieL4 = Label(gameFrame2, image=blankP) dieL4.image = blankP dieL4.grid(row=0, column=3) dieL5 = Label(gameFrame2, image=blankP) dieL5.image = blankP dieL5.grid(row=0, column=4) dieL6 = Label(gameFrame2, image=blankP) dieL6.image = blankP dieL6.grid(row=0, column=5) gameFrame1.pack() gameFrame2.pack() gameFrame3.pack() gameFrame4.pack() drawFarkle() else: players[0].playerNamesAndScores[userTurn] = points + players[0].playerNamesAndScores[userTurn] # Resetting all things rollAllB.config(background="Grey", command=lambda: rollAll(True)) points = 0 allPLastRound = False newScoringDie = False lockedInDie = {1: False, 2: False, 3: False, 4: False, 5: False, 6: False} dice = [0, 0, 0, 0, 0, 0] rerolledDice = [] directory1 = os.path.dirname(os.path.realpath(__file__)) imagePath1 = os.path.join(directory1, "b.png") imageBlank = Image.open(str(imagePath1)) blankP = ImageTk.PhotoImage(imageBlank) dieL1 = Label(gameFrame2, image=blankP) dieL1.image = blankP dieL1.grid(row=0, column=0) dieL2 = Label(gameFrame2, image=blankP) dieL2.image = blankP dieL2.grid(row=0, column=1) dieL3 = Label(gameFrame2, image=blankP) dieL3.image = blankP dieL3.grid(row=0, column=2) dieL4 = Label(gameFrame2, image=blankP) dieL4.image = blankP dieL4.grid(row=0, column=3) dieL5 = Label(gameFrame2, image=blankP) dieL5.image = blankP dieL5.grid(row=0, column=4) dieL6 = Label(gameFrame2, image=blankP) dieL6.image = blankP dieL6.grid(row=0, column=5) gameFrame1.pack() gameFrame2.pack() gameFrame3.pack() gameFrame4.pack() drawFarkle() # determining winner, displaying to players that the game has ended and updating the winners score in the # database. if players[0].playerNamesAndScores[userTurn] >= gameEnd: displayWinner = Toplevel(main) winner = Label(displayWinner, text=userTurn+" has won! with: "+str(players[0].playerNamesAndScores[userTurn])) # connecting to local MySQL database where scores are recorded databaseNamesWins = {} scoresDatabase = mysql.connector.connect(host="127.0.0.1", user="******", passwd="ThisPasswordIsWeak1", database="farklescores") cursor = scoresDatabase.cursor() cursor.execute("select * from scores order by winCount desc;") for player in cursor: line = str(player) playerName = "" playerWins = "" playerName = line[line.find('(\'') + 2:line.find('\',')] playerWins = line[line.find('\',') + 3:line.find(')')] databaseNamesWins[playerName] = int(playerWins) if userTurn in databaseNamesWins: databaseNamesWins[userTurn] = int(databaseNamesWins[userTurn]) + 1 cursor.execute("INSERT INTO scores (uName, winCount) VALUES (\'" + userTurn + "\', " + str(databaseNamesWins[userTurn]) + ") ON DUPLICATE KEY UPDATE winCount = " + str(databaseNamesWins[userTurn]) + ";") scoresDatabase.commit() else: cursor.execute("INSERT INTO scores (uName, winCount) VALUES (\'" + str(userTurn) + "\', 1);") scoresDatabase.commit() scoresDatabase.disconnect resetButton = Button(displayWinner, text="Back to main menu", command=lambda: [displayWinner.destroy(), drawTitleScreen()]) resetButton.pack() winner.pack() userIndex = names.index(userTurn) if userIndex != len(names)-1: userTurn = names[userIndex + 1] else: userTurn = names[0] turnLabel.config(text=userTurn + "'s Turn") if "AI Player" in userTurn: AIPlayerTurn(userTurn) else: Button(gameFrame4, text="End Turn", background = "Red", command=lambda:endTurn()).grid(row=1, column=1) gameFrame4.pack() allPLastRound = False newScoringDie = False aiFarkled = False
""" Tk8.0 style top-level multiple window menus """ from tkinter import Tk, Toplevel, Label, Button from tkinter import YES, BOTH from menu_win import makemenu # reuse menu maker function root = Tk() for i in range(3): # three pop-up windows with menus win = Toplevel(root) makemenu(win) Label(win, bg='black', height=5, width=25).pack(expand=YES, fill=BOTH) Button(root, text="Bye", command=root.quit).pack() root.mainloop()
def popup_window_peakinfo(self, text, filename): NA = 'N/A' selections = [ fn.split('.R1.fastq.gz')[0] for fn in self.datafiles if fn.endswith(".R1.fastq.gz") ] ################################ #check availablity of the files before moving on! if not selections: showerror( "No FASTQ files available matching the pattern *.R1.fastq.gz") return ################################ selections.insert( 0, NA) #Adding N/A for the groups where no input is available groups = ['Grp%d' % i for i in range(1, len(selections) + 1)] ##checking for debugging purpose print(selections) assert len(selections) == len(set(selections)) ## top = Toplevel() info = LabelFrame(top, text=text) #"Group Information") chip_vars = [StringVar() for s in selections[1:]] input_vars = [StringVar() for s in selections[1:]] group_vars = [StringVar() for s in selections[1:]] chip_menus = [OptionMenu(info, var, *selections) for var in chip_vars] input_menus = [ OptionMenu(info, var, *selections) for var in input_vars ] group_menus = [OptionMenu(info, var, *groups) for var in group_vars] group_entries = [ Entry(info, bd=2, width=8, textvariable=var) for var in group_vars ] chiplabel = Label(info, text="ChIP Names") inputlabel = Label(info, text="Input Names") grouplabel = Label(info, text="Group Names") chiplabel.grid(row=0, column=1, padx=4, pady=1) inputlabel.grid(row=0, column=2, padx=4, pady=1) grouplabel.grid(row=0, column=3, padx=4, pady=1) for i, (chvar, invar) in enumerate(zip(chip_vars, input_vars)): chvar.set(selections[0]) invar.set(selections[0]) chip_menus[i].grid(row=i + 1, column=1, padx=4, pady=1) input_menus[i].grid(row=i + 1, column=2, padx=4, pady=1) group_entries[i].grid(row=i + 1, column=3, padx=4, pady=1) group_menus[i].grid(row=i + 1, column=4, padx=4, pady=1) def savefunc(): info_text = StringIO() for v1, v2, v3 in zip(chip_vars, input_vars, group_vars): v1 = v1.get().strip() if v1.get().strip() != NA else "" if not v1: continue v2 = v2.get().strip() if v2.get().strip() != NA else "" v3 = v3.get().strip() if v3.get().strip() != NA else "" if not v3: showerror( "Error", "Missing Replicate group name detected.\nReplicate group names should be given!" ) print( "Error", "Missing Replicate group name detected.\nReplicate group names should be given!" ) return print(v1, v2, v3, file=info_text, sep="\t") fp = open(filename, 'w') fp.write(info_text.getvalue()) fp.close() def loadfunc(): if not exists(filename): print(filename, 'does not exists!') return for i, l in enumerate(open(filename)): v1, v2, v3 = l.split('\t') if v1: try: assert v1 in selections except: showwarning('WARNING', 'ChIP name is not in the selection list!') print('v1:', v1) print('selection:', selection) continue if v2: try: assert v2 in selections except: showwarning( 'WARNING', 'Input name is not in the selection list!') print('v2:', v2) print('selection:', selection) return chip_vars[i].set(v1.strip()) input_vars[i].set(v2.strip()) group_vars[i].set(v3.strip()) def clearfunc(): for i, (chvar, invar, grvar) in enumerate(zip(chip_vars, input_vars, group_vars)): chvar.set(selections[0]) invar.set(selections[0]) grvar.set('') info_clear_button = Button(top, text="Clear", command=clearfunc) info_save_button = Button(top, text="Save", command=savefunc) info_load_button = Button(top, text="Load", command=loadfunc) #self.pairs_load_button.pack( side=BOTTOM, padx=5, pady=5 ) #self.pairs_save_button.pack( side=BOTTOM, padx=5, pady=5 ) info_clear_button.grid(row=5, column=3, padx=10, pady=5) info_load_button.grid(row=5, column=4, padx=10, pady=5) info_save_button.grid(row=5, column=5, padx=10, pady=5) info.grid(row=7, column=0, columnspan=6, sticky=W, padx=20, pady=10) top.focus_force()
def __init__(self): self.root = Toplevel() self.checkbutton1 = IntVar()
def addevent(): def submitadd(): id = idval.get() event_name = event_nameval.get() co_name = co_nameval.get() mobile = mobileval.get() email = emailval.get() event_address = event_addressval.get() event_date = event_dateval.get() addedtime = time.strftime("%H:%M:%S") addeddate = time.strftime("%d/%m/%Y") try: strr = 'insert into eventdata2 values(%s,%s,%s,%s,%s,%s,%s,%s,%s)' mycursor.execute(strr, (id, event_name, co_name, mobile, email, event_address, event_date, addeddate, addedtime)) con.commit() res = messagebox.askyesnocancel( 'Notifications', 'Id {} Name {} Added sucessfully.. and want to clean the form'. format(id, event_name), parent=addroot) if (res == True): idval.set('') event_nameval.set('') co_name.set('') mobileval.set('') emailval.set('') event_addressval.set('') event_dateval.set('') except: messagebox.showerror('Notifications', 'Id Already Exist try another id...', parent=addroot) strr = 'select * from eventdata2' mycursor.execute(strr) datas = mycursor.fetchall() eventtable.delete(*eventtable.get_children()) for i in datas: vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]] eventtable.insert('', END, values=vv) addroot = Toplevel(master=DataEntryFrame) addroot.grab_set() addroot.geometry('470x490+220+250') addroot.title('Event Management System') addroot.config(bg='skyblue') addroot.iconbitmap('mana.ico') addroot.resizable(False, False) #--------------------------------------------------- Add eventLabels idlabel = Label(addroot, text='Enter Event Id: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') idlabel.place(x=10, y=10) event_namelabel = Label(addroot, text='Enter Event Name: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_namelabel.place(x=10, y=70) co_namelabel = Label(addroot, text='Event Co-ordinator Name: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') co_namelabel.place(x=10, y=130) mobilelabel = Label(addroot, text='Event Co-ordinator Mobile: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') mobilelabel.place(x=10, y=190) emaillabel = Label(addroot, text='Enter Co-ordinator Email: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') emaillabel.place(x=10, y=250) event_addresslabel = Label(addroot, text='Enter Address: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_addresslabel.place(x=10, y=310) event_datelabel = Label(addroot, text='Enter Event Date: ', bg='skyblue', font=('times', 12, 'bold'), relief=GROOVE, borderwidth=3, width=22, anchor='w') event_datelabel.place(x=10, y=370) ##----------------------------------------------------------- Add event Entry idval = StringVar() event_nameval = StringVar() co_nameval = StringVar() mobileval = StringVar() emailval = StringVar() event_addressval = StringVar() event_dateval = StringVar() identry = Entry(addroot, font=('roman', 12, 'bold'), bd=5, textvariable=idval) identry.place(x=260, y=10) event_nameentry = Entry(addroot, font=('roman', 12, 'bold'), bd=5, textvariable=event_nameval) event_nameentry.place(x=260, y=70) co_nameentry = Entry(addroot, font=('roman', 12, 'bold'), bd=5, textvariable=co_nameval) co_nameentry.place(x=260, y=130) mobileentry = Entry(addroot, font=('roman', 12, 'bold'), bd=5, textvariable=mobileval) mobileentry.place(x=260, y=190) emailentry = Entry(addroot, font=('roman', 12, 'bold'), bd=5, textvariable=emailval) emailentry.place(x=260, y=250) event_addressentry = Entry(addroot, font=('roman', 15, 'bold'), bd=5, textvariable=event_addressval) event_addressentry.place(x=250, y=310) event_dateentry = Entry(addroot, font=('roman', 15, 'bold'), bd=5, textvariable=event_dateval) event_dateentry.place(x=250, y=370) ############------------------------- add button submitbtn = Button(addroot, text='Submit', font=('roman', 15, 'bold'), width=20, bd=5, activebackground='skyblue', activeforeground='white', bg='skyblue3', command=submitadd) submitbtn.place(x=150, y=420) addroot.mainloop()
def CreateWindow(self, filePath, files = [], extensions = [], tags = []): self.directory = filePath; self.fileList = files; self.duplicate_var = BooleanVar(); self.singleTag_var = BooleanVar(); #Define Window self.FilterGUI = Toplevel(); self.FilterGUI.title("Please select prefered filters"); screenX = int(self.screenWidth / 2 - self.windowWidth / 2); screenY = int(self.screenHeight / 2 - self.windowHeight / 2); self.FilterGUI.geometry('+%d+%d' % (screenX, screenY)); #Create static UI elements #Frames optionFrame = Frame(self.FilterGUI); extensionsFrame = Frame(optionFrame); tagsFrame = Frame(optionFrame); #Labels labelExtensions = Label(extensionsFrame, text = 'Extensions'); labelTags = Label(tagsFrame, text = 'Tags'); labelRemoveDuplicated = Label(self.FilterGUI, text = 'Remove Duplicate: '); labelMatchSingleTag = Label(self.FilterGUI, text = 'Match single Tag: '); #Buttons startButton = Button(self.FilterGUI, text = 'Filter ROMS', command = self.FilterRoms, padx = 10); self.buttonRemoveDuplicate = Checkbutton(self.FilterGUI, variable = self.duplicate_var); self.buttonMatchSingleTag = Checkbutton(self.FilterGUI, variable = self.singleTag_var); #Pack static UI elements labelExtensions.pack(side = TOP); labelTags.pack(side = TOP); #Create Dynamicly Generated UI Elements #Extensions extensionWidgets = []; tagWidgets = [] verticalFrame = Frame(extensionsFrame); verticalPos = 0; bgcolor = self.bgColor; for option in extensions: #Split options into smaller lists if verticalPos >= self.maxOptions: verticalFrame = Frame(extensionsFrame); verticalPos = 0; #interchanging colors for readability if ((verticalPos+1) % 2) == 1: bgcolor = self.altBgColor; else: bgcolor = self.bgColor; var = BooleanVar(); tempframe = Frame(verticalFrame, width = 100, height = 16); Label(tempframe, text = option+': ', bg = bgcolor).pack(side = LEFT, fill = 'x', expand = YES); extension = Checkbutton(tempframe, variable = var, bg = bgcolor); extension.select(); extension.pack(side = RIGHT); self.extensionList.append([option, var]); extensionWidgets.append(tempframe); verticalFrame.pack(side = LEFT, fill = 'y', expand = YES); verticalPos += 1; verticalFrame = Frame(tagsFrame); verticalPos = 0; for option in tags: #Split options into smaller lists if verticalPos >= self.maxOptions: verticalFrame = Frame(tagsFrame); verticalPos = 0; #interchanging colors for readability if ((verticalPos+1) % 2) == 1: bgcolor = self.altBgColor; else: bgcolor = self.bgColor; var = BooleanVar(); tempframe = Frame(verticalFrame, width = 280, height = 16, bg = bgcolor); Label(tempframe, text = option+': ', bg = bgcolor).pack(side = LEFT, fill = 'x', expand = YES); tag = Checkbutton(tempframe, variable = var, bg = bgcolor); tag.select(); tag.pack(side = RIGHT); self.tagList.append([option, var]); tagWidgets.append(tempframe); verticalFrame.pack(side = LEFT, fill = 'y', expand = YES); verticalPos += 1; print(len(files)); print(len(extensions)); print(len(tags)); #Pack Dynamic Elements for elementType in extensionWidgets: elementType.pack(side = TOP); elementType.pack_propagate(0) for elementType in tagWidgets: elementType.pack(side = TOP); elementType.pack_propagate(0) #Push UI Elements extensionsFrame.pack(side = LEFT, fill = BOTH, expand = YES, padx = 30); tagsFrame.pack(side = LEFT, fill = BOTH, expand = YES); optionFrame.pack(side = TOP, expand = YES); startButton.pack(side = RIGHT, padx = 15, pady = 15); self.buttonRemoveDuplicate.pack(side = RIGHT); labelRemoveDuplicated.pack(side = RIGHT); self.buttonMatchSingleTag.pack(side = RIGHT); labelMatchSingleTag.pack(side = RIGHT); #buttonRemoveDuplicate.select(); self.FilterGUI.resizable(False, False)
def Connectdb(): def submitdb(): global con, mycursor host = hostval.get() user = userval.get() password = passwordval.get() try: con = pymysql.connect(host=host, user=user, password=password) mycursor = con.cursor() except: messagebox.showerror('Notifications', 'Data is incorrect please try again', parent=dbroot) return try: strr = 'create database eventmanagementsystem2' mycursor.execute(strr) strr = 'use eventmanagementsystem2' mycursor.execute(strr) strr = 'create table eventdata2(id int,event_name varchar(20),co_name varchar(20),mobile varchar(12),email varchar(30),event_address varchar(100),event_date varchar(50),date varchar(50),time varchar(50))' mycursor.execute(strr) strr = 'alter table eventdata2 modify column id int not null' mycursor.execute(strr) strr = 'alter table eventdata2 modify column id int primary key' mycursor.execute(strr) messagebox.showinfo( 'Notification', 'database created and now you are connected connected to the database ....', parent=dbroot) except: strr = 'use eventmanagementsystem2' mycursor.execute(strr) messagebox.showinfo('Notification', 'Now you are connected to the database ....', parent=dbroot) dbroot.destroy() dbroot = Toplevel() dbroot.grab_set() dbroot.geometry('470x250+800+230') dbroot.iconbitmap('mana.ico') dbroot.resizable(False, False) dbroot.config(bg='skyblue') #-------------------------------Connectdb Labels hostlabel = Label(dbroot, text="Enter Host : ", bg='skyblue', font=('times', 20, 'bold'), relief=GROOVE, borderwidth=3, width=13, anchor='w') hostlabel.place(x=10, y=10) userlabel = Label(dbroot, text="Enter User : "******"Enter Password : ", bg='skyblue', font=('times', 20, 'bold'), relief=GROOVE, borderwidth=3, width=13, anchor='w') passwordlabel.place(x=10, y=130) #-------------------------Connectdb Entry hostval = StringVar() userval = StringVar() passwordval = StringVar() hostentry = Entry(dbroot, font=('roman', 15, 'bold'), bd=5, textvariable=hostval) hostentry.place(x=250, y=10) userentry = Entry(dbroot, font=('roman', 15, 'bold'), bd=5, textvariable=userval) userentry.place(x=250, y=70) passwordentry = Entry(dbroot, font=('roman', 15, 'bold'), bd=5, textvariable=passwordval) passwordentry.place(x=250, y=130) #-------------------------------- Connectdb button submitbutton = Button(dbroot, text='Submit', font=('roman', 15, 'bold'), bg='skyblue', bd=5, width=20, activebackground='skyblue', activeforeground='white', command=submitdb) submitbutton.place(x=150, y=190) dbroot.mainloop()
def launch(self): if self.app_setup: self.id_id = {} # Check if a database file is chosen if not isfile(self.app_setup.data_base_file): messagebox.showinfo("Error", "The file {} is not found"\ .format(self.app_setup.data_base_file)) return # Check if the system is connected to a server if not self.client_tuple: if not messagebox.askyesno("No connection to server", "Continue anyway?"): return # Write settings to config self.write_config() # Create a new participant folder folder_name = "participant_{}_session_{}".format( self.app_setup.participant.get(), self.app_setup.rbType.get()) folder_name_tmp = folder_name nmbr = 1 new = True while True: if exists(join(self.app_setup.write_to_path, folder_name_tmp)): folder_name_tmp = "{}_{}".format(folder_name, nmbr) nmbr += 1 new = False else: os.makedirs( join(self.app_setup.write_to_path, folder_name_tmp)) break if new: self.send("{};greetings".format( self.app_setup.rbType.get()).encode("utf-8")) self.log_file = join(self.app_setup.write_to_path, folder_name_tmp) self.log_file = join(self.log_file, "log.csv") # Read and create data base builder = BuildDB({"--data_file": self.app_setup.data_base_file}) self.mongo_db = builder.build() # Start thread to update the data base self.update = True self.update_db() self.log("info", "Session started") self.log( "info", "Participant: {}".format(self.app_setup.participant.get())) self.log("info", "Experiment: {}".format(self.app_setup.rbType.get())) self.log("info", "Data base: {}".format(self.app_setup.data_base_file)) self.log("info", "Data size: {}".format(len(list(self.mongo_db.find())))) if not self.client_tuple: self.log("info", "Server adr: {}".format("None")) else: self.log("info", "Server adr: {}".format(self.client_tuple[0].host)) self.log("", "") self.root_filter = Toplevel() self.app_filter = GUI_filter( self, master=self.root_filter, title="{} {}".format(self.app_setup.participant.get(), self.app_setup.rbType.get()), session_type=self.app_setup.rbType.get()) self.app_filter.launch() self.root_filter.mainloop()
def add_student(): def submit_add_data(): id= id_value.get() name= name_value.get() mobile= mobile_value.get() email= email_value.get() address=address_value.get() gender=gender_value.get() dob=dob_value.get() added_date=time.strftime('%d/%m/%Y') added_time=time.strftime("%H:%M:%S") try: query='insert into Student values(%s,%s,%s,%s,%s,%s,%s,%s,%s)' mycursor.execute(query,(id,name,mobile,email,address,gender,dob,added_date,added_time)) con.commit() message=messagebox.askyesnocancel('Notification','Id {} Name {} Added successfully...and want to clean the form'.format(id,name),parent=addroot) if(message==True): id_value.set('') name_value.set('') mobile_value.set('') email_value.set('') address_value.set('') gender_value.set('') dob_value.set('') except: messagebox.showerror('Notification','ID already exists',parent=addroot) query='select * from Student' mycursor.execute(query) data=mycursor.fetchall() #tree_view.delete(*tree_view.get_children()) # delete all from tree_view frame #for i in data: #tree_view_data=[i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8]] #tree_view.insert('',END,values=tree_view_data) addroot=Toplevel(master=data_entry_frame) # opens TPL window in that frame only addroot.geometry('470x450+220+200') addroot.config(bg='blue') addroot.grab_set() # no other windows will pop up and no button will be clicked other than top-level window addroot.iconbitmap('student_management.ico') addroot.resizable(False, False) id_label=Label(addroot,text='Enter ID',anchor='w',font=('times',15,'bold'),width=13) name_label = Label(addroot, text='Enter name',anchor='w',font=('times',15,'bold'),width=13) mobile_label = Label(addroot, text='Enter Mobile no',anchor='w',font=('times',15,'bold'),width=13) email_label = Label(addroot, text='Enter email',anchor='w',font=('times',15,'bold'),width=13) address_label = Label(addroot, text='Enter address',anchor='w',font=('times',15,'bold'),width=13) gender_label = Label(addroot, text='Enter Gender',anchor='w',font=('times',15,'bold'),width=13) dob_label = Label(addroot, text='Enter DOB',anchor='w',font=('times',15,'bold'),width=13) id_label.place(x=10,y=10) name_label.place(x=10,y=60) mobile_label.place(x=10,y=110) email_label.place(x=10,y=160) address_label.place(x=10,y=210) gender_label.place(x=10,y=260) dob_label.place(x=10,y=310) id_value = StringVar() name_value = StringVar() mobile_value = StringVar() email_value = StringVar() address_value = StringVar() gender_value = StringVar() dob_value = StringVar() id_details = Entry(addroot, textvariable=id_value, borderwidth=5,width=30) name_details = Entry(addroot, textvariable=name_value, borderwidth=5, width=30) mobile_details = Entry(addroot, textvariable=mobile_value, borderwidth=5, width=30) email_details = Entry(addroot, textvariable=email_value, borderwidth=5, width=30) address_details = Entry(addroot, textvariable=address_value, borderwidth=5, width=30) gender_details = Entry(addroot, textvariable=gender_value, borderwidth=5, width=30) dob_details = Entry(addroot, textvariable=dob_value, borderwidth=5, width=30) id_details.place(x=230, y=10,height=30) name_details.place(x=230, y=60, height=30) mobile_details.place(x=230, y=110, height=30) email_details.place(x=230, y=160, height=30) address_details.place(x=230, y=210, height=30) gender_details.place(x=230, y=260, height=30) dob_details.place(x=230, y=310, height=30) add_button=Button(addroot,text='ADD',width=10,activebackground='green',font=('times',13,'bold'),command=submit_add_data) add_button.place(x=160,y=400) addroot.mainloop()
def showStallsCustom(): try: listOpenStallsCustom = getCustomStalls()[1] #Will lead to exception if value not selected in getCustomStalls() if listOpenStallsCustom == []: #If no stalls available, prompt for different timing return messagebox.showerror('No Stores Available',"All stores are closed.\nPlease enter a different timing.") #Creates screen for custom stalls frame4 = Toplevel(frame2) #Pop up new frame frame4.geometry("700x680") screen4=Canvas(frame4) screen4.create_image(0,0,image=wallpaper,anchor="nw") screen4.pack(expand="true",fill="both") #Adds labels, menu info and buttons intro4Label=Label(screen4, font=("Comic Sans MS", 15), bg='gray22', height=1, fg="white", text="Current Stalls and Food Available:") screen4.create_window(190, 120, anchor="nw", window=intro4Label) menuInfoCustom="\n".join(getCustomStalls()[0]) #Use getCustomStalls() function and print out the menu details menuTextCustom = tkst.ScrolledText(screen4, font=("Comic Sans MS", 15), bg='gray22', fg="white", wrap = "word", width = 35, height = 13) menuTextCustom.pack(fill="both",expand=True,padx = 8, pady = 8) menuTextCustom.tag_config("justified", justify = "center") menuTextCustom.insert("insert", menuInfoCustom, "justified") menuTextCustom.config(state="disabled") screen4.create_window(130, 160, anchor="nw", window=menuTextCustom) Label_4A=Label(screen4, text=" Enter number of people waiting: ", font=("Comic Sans MS", 15), bg='gray22', fg="white") screen4.create_window(50, 550, anchor="nw", window=Label_4A) getPeopleCustom = Entry(screen4, font = ("Comic Sans MS", 15), width = 5, textvariable = VarPeople) screen4.create_window(380, 550, anchor="nw", window=getPeopleCustom) Label_4B=Label(screen4, text="Choose stall: ", font=("Comic Sans MS", 15), bg='gray22', fg="white") screen4.create_window(50, 600, anchor="nw", window=Label_4B) getWaitingCustom = ttk.Combobox(screen4, textvariable = VarStall, font=("Comic Sans MS", 15), state = "readonly", width = 10, values = listOpenStallsCustom) screen4.create_window(380, 600, anchor="nw", window=getWaitingCustom) calculateButton=Button(screen4,text='Calculate', font=("Comic Sans MS", 15), bg='gray22', fg="white", command=lambda:(showWaitingTime())) screen4.create_window(540, 550, anchor="nw", window=calculateButton) backButton4=Button(screen4,text='Back', font=("Comic Sans MS", 15), bg='gray22', fg="white", command=lambda:(frame4.destroy())) screen4.create_window(540, 600, anchor="nw", window=backButton4) except: return messagebox.showerror('No Stores Available',"No value selected.\nPlease choose a value.")