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()
Esempio n. 2
0
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()
Esempio n. 3
0
                  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()
Esempio n. 4
0
    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)
Esempio n. 7
0
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()
Esempio n. 8
0
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
Esempio n. 9
0
    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)
Esempio n. 10
0
    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()
Esempio n. 11
0
 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()
Esempio n. 12
0
 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)
Esempio n. 13
0
 def create_dialog(mr: MetaRecord) -> Toplevel:
     window = Toplevel()
     RebuildDialog(window, mr)
     window.title("MetaRecord Rebuilder")
     return window
Esempio n. 14
0
    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()
Esempio n. 16
0
 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()
Esempio n. 18
0
 def new_window(self):
     self.newWindow = Toplevel(self.root)
Esempio n. 19
0
    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()
Esempio n. 20
0
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)
Esempio n. 21
0
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
Esempio n. 22
0
"""
    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()
Esempio n. 23
0
    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()
Esempio n. 24
0
 def __init__(self):
     self.root = Toplevel()
     self.checkbutton1 = IntVar()
Esempio n. 25
0
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()
Esempio n. 26
0
    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)
Esempio n. 27
0
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()
Esempio n. 28
0
    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()
Esempio n. 29
0
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()
Esempio n. 30
0
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.")