コード例 #1
0
 def __init__(self, master):
     global palette
     Grid.rowconfigure(master, 0, weight=1)
     Grid.columnconfigure(master, 0, weight=1)
     frame=Frame(master, bg = 'black')
     frame.grid(row=0, column=0, sticky=N+S+E+W)
     def contrasting_color(hex_str):
         (r, g, b) = hex_str[1:2], hex_str[3:5], hex_str[5:]
         luminance = (1 - (int(r, 16) * 0.299 + int(g, 16) * 0.587 + int(b, 16) * 0.114) / 255)
         if luminance < 0.5:
             return '#000000'
         else:
             return '#ffffff'
     def btn_click(num, idnum):
         palette.append(num)
         btn_ids[idnum].config(state="disabled")
     color = 0
     btn_ids = []
     for row_index in range(4):
         Grid.rowconfigure(frame, row_index, weight=1)
         for col_index in range(16):
             Grid.columnconfigure(frame, col_index, weight=1)
             btn = Button(frame, bg=_2C02palette[color], text=hex(color), fg=contrasting_color(_2C02palette[color]), borderless = 1, font='GB18030Bitmap', command=lambda txt=hex(color), idn=color: btn_click(txt, idn))
             btn.grid(row=row_index, column=col_index, sticky=N+S+E+W)
             color += 1
             btn_ids.append(btn)
     while True:
         master.update()
         if len(palette) == 3:
             master.destroy()
             break
コード例 #2
0
def addFactionButton(faction):
    global factionGridCol
    factionGridCol += 1
    imgLocation = 'Images/Factions/{}-icon.png'.format(faction)
    img = PhotoImage(file=imgLocation)
    factionButton = Button(xwingRoot, text='', height=50, width=60, bg='black', focuscolor='white', borderless=True, image=img, command=lambda: getFaction(faction, ''))
    factionButton.grid(row='0', column=str(factionGridCol))
コード例 #3
0
 def placeButton(self):
     button = Button(root,
                     text=self.name,
                     height=5,
                     width=10,
                     bg="black",
                     fg=GREEN,
                     activebackground=GREEN,
                     focuscolor=GREEN,
                     command=lambda: [insert_name(self.name)])
     button.grid(column=self.x, row=self.y, sticky="NSEW")
コード例 #4
0
    def display_seats(available_seats):
        global selected_seat
        # for each row
        for i in range(10):
            letter = chr(i + 97).upper()
            row_label = Label(seat_selection_frame, text=letter)
            row_label.grid(row=i + 1, column=0)
            # for each column
            for j in range(20):
                column_label = Label(seat_selection_frame, text=j + 1)
                column_label.grid(row=0, column=j + 1)

                # linear search through each position in the 2D list
                if available_seats[i][j] == 'False':
                    button_colour = "red"
                else:
                    button_colour = "green"

                print(button_colour)

                b = Button(seat_selection_frame,
                           bg=button_colour,
                           height=20,
                           width=50)
                b.grid(row=i + 1, column=j + 1)

        Label(seat_selection_frame, text='Enter seat -->').grid(row=13,
                                                                column=0,
                                                                padx=5,
                                                                pady=20,
                                                                columnspan=10,
                                                                sticky=W)

        seat_choose_field = Entry(seat_selection_frame)
        seat_choose_field.grid(row=13,
                               column=1,
                               padx=5,
                               pady=20,
                               columnspan=10)

        def fetch_entry():
            global selected_seat
            selected_seat = seat_choose_field.get()

            check_selected_seat(selected_seat, available_seats)

        seat_select = Button(seat_selection_frame,
                             text="Choose seat",
                             command=lambda: fetch_entry())
        seat_select.grid(row=14, column=0, padx=5, pady=20, columnspan=10)
コード例 #5
0
def summonWindow3():
    topFrame = tkinter.Frame(window)
    topFrame.pack(expand=True, fill=tkinter.BOTH,padx=5)
    topFrame.option_add("*Background", backgroundColour)
    bottomFrame = tkinter.Frame(window)
    bottomFrame.pack(side=tkinter.BOTTOM, fill=tkinter.X,padx=5)
    bottomFrame.option_add("*Background", backgroundColour)
    first = tkinter.Label(topFrame, text="Select SD Card", font=(titleFont), fg=foregroundColour)
    first.grid(column=0,row=0, sticky="w")
    subtitle = tkinter.Label(topFrame, text='ready to download?', font=(subtitleFont), fg=foregroundColour)
    subtitle.grid(column=0,row=1,sticky="w")
    noticeLabel=tkinter.Label(topFrame,text="Plug in your SD card and choose the directory", fg=foregroundColour, font=(bodyFont))
    noticeLabel.grid(column=0,row=2,sticky="w")
    SDentry = tkinter.Entry(topFrame, fg=foregroundColour,bg=buttonColour,font=(buttonFont),width=25)
    SDentry.grid(column=0, row=3,sticky="w")
    chooseDirButton = Button(topFrame, text = "Click to select folder", command =lambda:chooseDir(topFrame,SDentry),fg=foregroundColour,bg=buttonColour,font=(buttonFont),width=folder_width)
    chooseDirButton.grid(column=0, row=4,sticky="w",pady=5)
    backButton = Button(bottomFrame,text="Back", font=(buttonFont),fg=foregroundColour,bg=backButtonColour,command=lambda: [topFrame.destroy(),bottomFrame.destroy(),summonWindow2()], width=button_width)
    backButton.pack(side=tkinter.LEFT)
    nextButton = Button(bottomFrame, text="Start",width=button_width, fg=foregroundColour,bg=nextButtonColour, font=(buttonFont),command=lambda:[globalify(SDentry.get()),topFrame.destroy(),bottomFrame.destroy(),summonWindow4()])
    nextButton.pack(side=tkinter.RIGHT, padx=5, pady=5)
    window.protocol("WM_DELETE_WINDOW",lambda:closeButtonPress(window))
コード例 #6
0
subtract = Button(text="-",
                  fg="white",
                  bg="orange",
                  borderless=True,
                  command=lambda: button_press("-"),
                  font=(None, 25))
equals = Button(text="=",
                fg="white",
                bg="orange",
                borderless=True,
                command=equals,
                font=(None, 25))

label = Label(text="0", fg="white", bg="black", font=(None, 25))

btn1.grid(row=3, column=0, sticky="nsew")
btn2.grid(row=3, column=1, sticky="nsew")
btn3.grid(row=3, column=2, sticky="nsew")

btn4.grid(row=2, column=0, sticky="nsew")
btn5.grid(row=2, column=1, sticky="nsew")
btn6.grid(row=2, column=2, sticky="nsew")

btn7.grid(row=1, column=0, sticky="nsew")
btn8.grid(row=1, column=1, sticky="nsew")
btn9.grid(row=1, column=2, sticky="nsew")

btn0.grid(row=4, column=0, sticky="nsew")
decimal.grid(row=4, column=1, sticky="nsew")
clear.grid(row=4, column=2, sticky="nsew")
コード例 #7
0
ファイル: 我就健.py プロジェクト: e85658/PBC_final
def BMIapp(frame):
    global GenderInput
    global AgeInput
    global HeightInput
    global WeightInput
    global ActivityInput
    global TargetWeightInput
    global DaysInput
    frame.tkraise()

    BackButton = Button(frame,
                        text="←",
                        command=lambda: SwitchFrame(SecondFrame, FirstFrame))
    BackButton.grid(column=0, row=0, sticky='WS')  # 回到上一頁的button

    # ============= 頁面標題
    LabelOpening = tk.Label(SecondFrame,
                            text="看看你多健!",
                            font=('Helvetica', 25),
                            bg="#fbf1e9",
                            fg='#f8872e')
    LabelOpening.grid(column=0, row=1, ipady=20, columnspan=2)

    # ============= 性別的下拉式選單
    LabelGenderInput = tk.Label(SecondFrame,
                                text="性別",
                                fg='#f8872e',
                                bg="#fbf1e9")  # 性別 Label
    LabelGenderInput.grid(column=0, row=2, ipady=5)  # Label 位子
    GenderInput = ttk.Combobox(SecondFrame, values=["生理男", "生理女"])  # 性別下拉式選單
    GenderInput.grid(column=1, row=2)  # 欄位位子
    GenderInput.current(0)  # 下拉選單預設為男

    # ============= 年齡的輸入欄
    LabelAgeInput = tk.Label(SecondFrame,
                             text="年齡",
                             fg='#f8872e',
                             bg="#fbf1e9")  # 年齡 Label
    LabelAgeInput.grid(column=0, row=3, ipady=5)  # Label 位子
    AgeInput = Entry(SecondFrame)  # 年齡輸入欄位
    AgeInput.grid(column=1, row=3)  # 欄位位子

    # ============= 身高的輸入欄
    LabelHeightInput = tk.Label(SecondFrame,
                                text="身高(cm)",
                                fg='#f8872e',
                                bg="#fbf1e9")  # 身高 Label
    LabelHeightInput.grid(column=0, row=4, ipady=5)  # Label位子
    HeightInput = Entry(SecondFrame)  # 身高輸入欄位
    HeightInput.grid(column=1, row=4)  # 欄位位子

    # ============= 體重的輸入欄
    LabelWeightInput = tk.Label(SecondFrame,
                                text="體重(kg)",
                                fg='#f8872e',
                                bg="#fbf1e9")  # 體重 Label
    LabelWeightInput.grid(column=0, row=5, ipady=5)  # Label 位子
    WeightInput = Entry(SecondFrame)  # 輸入體重欄位
    WeightInput.grid(column=1, row=5)  # 欄位位子

    # ============= 每日活動量的輸入欄
    LabelActivityInput = tk.Label(SecondFrame,
                                  text="每日活動量",
                                  fg='#f8872e',
                                  bg="#fbf1e9")  # 每日活動量 Label
    LabelActivityInput.grid(column=0, row=6, ipady=5)  # 每日活動量 Label 位子
    ActivityInput = ttk.Combobox(
        SecondFrame, values=["低(經常久坐辦公室)", "中(需經常走動)",
                             "高(需搬運重物之勞力工作)"])  # 活動量下拉式選單
    ActivityInput.grid(column=1, row=6)  # 活動量下拉式選單位子
    ActivityInput.current(1)

    # 加入分隔線
    ttk.Separator(SecondFrame, orient=HORIZONTAL).grid(row=7,
                                                       columnspan=2,
                                                       sticky="ew",
                                                       padx=30,
                                                       pady=30)

    # ============= 目標體重輸入欄
    LabelTargetWeightInput = tk.Label(SecondFrame,
                                      text="期望達到的目標體重",
                                      fg='#f8872e',
                                      bg="#fbf1e9")  # 目標體重 Label
    LabelTargetWeightInput.grid(column=0, row=8, ipady=5)  # Label 位子
    TargetWeightInput = Entry(SecondFrame)  # 輸入目標體重欄位
    TargetWeightInput.grid(column=1, row=8)  # 欄位位子

    # ============= 期望達到期限輸入欄
    LabelDaysInput = tk.Label(SecondFrame,
                              text="你希望在幾天內達到目標體重",
                              fg='#f8872e',
                              bg="#fbf1e9")  # 目標天數 Label
    LabelDaysInput.grid(column=0, row=9, ipady=5)  # Label 位子
    DaysInput = Entry(SecondFrame)  # 輸入目標天數
    DaysInput.grid(column=1, row=9)  # 欄位位子

    # 加入分隔線
    # ttk.Separator(SecondFrame, orient=HORIZONTAL).grid(row=9, columnspan=2, sticky="ew", padx=30, pady=30)

    # ============= 輸入完成的計算鈕
    BasicCount = Button(SecondFrame,
                        text="看看我多健!",
                        bg='#f8872e',
                        fg="white",
                        bd=3,
                        command=lambda: CheckBlank())
    BasicCount.grid(column=0,
                    row=11,
                    columnspan=2,
                    padx=5,
                    pady=30,
                    ipady=5,
                    sticky="ew")
item1.pack(fill="x")  #, padx = 10, pady = 10)
vertical_frame.pack(fill="x")

#---Horizontal Layout with Data
horizontal_frame = Frame(mainframe, background="gray30")

#---Button
button_image = ImageTk.PhotoImage(
    file="/Users/rtamburro//Desktop/Tkinter_Projects/NockOnLogo.jpg")
img_label = Label(image=button_image)

my_button = Button(horizontal_frame,
                   image=button_image,
                   background="black",
                   command=phrase_display)
my_button.grid(column=2, rowspan=10, sticky="nsew")

#---Labels and Entries
label1 = Label(horizontal_frame,
               text="Axis or FMJ:",
               font=("Arial", 16),
               background="gray30",
               foreground="lawn green",
               padx=10,
               pady=10,
               relief="sunken")
label1.grid(row=0, column=0, sticky="nsew")

arrow_name = StringVar()
arrow_name.set("--- Select ---")
label_1_dropdown = OptionMenu(horizontal_frame, arrow_name, "Axis", "FMJ")
コード例 #9
0
website_input = Entry()
website_input.focus()
website_input.config(width=35)
website_input.grid(column=1, row=1, columnspan=2)

# email/username
email_username_label = Label(text="Email/Username:"******"*****@*****.**")
email_username_input.config(width=35)
email_username_input.grid(column=1, row=2, columnspan=2)

# password
password_label = Label(text="Password:"******"Generate Password", width=125, command=generate_password)
generate_password_button.grid(column=2, row=3)

# add
add_button = Button(text="Add", command=save, width=322)
add_button.grid(column=1, row=4, columnspan=36)

window.mainloop()
コード例 #10
0
class MainApplication(tk.Frame):
    right_scrollable_frame: Frame

    def __init__(self, master):
        self.master = master
        tk.Frame.__init__(self, self.master)
        self.box = tk.Entry(master)
        self.width = self.master.winfo_screenwidth() / 1.45
        self.height = self.master.winfo_screenheight() / 1.25
        self.max_min_method = tk.BooleanVar()
        self.method = tk.IntVar()
        self.configure_gui()
        self.create_frames()

    def configure_gui(self):
        self.master.title("OE - Projekt nr 1")
        self.master.geometry("%ix%i" % (self.width, self.height))
        self.master.configure(bg=LEFT_FRAME_BACKGROUND_COLOR)
        self.master.resizable(0, 0)

    def create_frames(self):
        self.left_frame = tk.Frame(width=self.width * 0.50, height=self.height - 20,
                                   background=LEFT_FRAME_BACKGROUND_COLOR)
        self.left_frame.grid(row=0, column=0)
        self.set_canvas_to_left_frame()

        self.right_frame = tk.Frame(width=self.width * 0.50, height=self.height - 20,
                                    background=RIGHT_FRAME_BACKGROUND_COLOR)
        self.right_frame.grid(row=0, column=1)
        self.set_canvas_to_right_frame()

    def set_canvas_to_left_frame(self):
        left_canvas = tk.Canvas(self.left_frame, width=self.width * 0.50, height=self.height - 20,
                                highlightthickness=0,
                                background="white")

        left_scrollbar = tk.Scrollbar(self.left_frame, orient="vertical", command=left_canvas.yview)
        self.left_scrollable_frame = tk.Frame(left_canvas)

        self.left_scrollable_frame.bind(
            "<Configure>",
            lambda e: left_canvas.configure(
                scrollregion=left_canvas.bbox("all")
            )
        )
        left_canvas.create_window((0, 0), window=self.left_scrollable_frame, anchor=tk.N + tk.W)
        left_canvas.configure(yscrollcommand=left_scrollbar.set)

        left_canvas.pack(side="left", fill="y", expand=False, pady=10)
        left_scrollbar.pack(side="right", fill="y", pady=10)

    def set_canvas_to_right_frame(self):
        right_canvas = tk.Canvas(self.right_frame, width=self.width * 0.50 - 30, height=self.height - 20,
                                 highlightthickness=0,
                                 background=RIGHT_FRAME_BACKGROUND_COLOR)

        right_scrollbar = tk.Scrollbar(self.right_frame, orient="vertical", command=right_canvas.yview,
                                       bg=RIGHT_FRAME_BACKGROUND_COLOR)
        self.right_scrollable_frame = tk.Frame(right_canvas, background=RIGHT_FRAME_BACKGROUND_COLOR)

        self.right_scrollable_frame.bind(
            "<Configure>",
            lambda e: right_canvas.configure(
                scrollregion=right_canvas.bbox("all")
            )
        )

        self.create_right_frame_widgets()

        right_canvas.create_window((0, 0), window=self.right_scrollable_frame, anchor=tk.N + tk.W)
        right_canvas.configure(yscrollcommand=right_scrollbar.set)

        right_canvas.pack(side="left", fill="y", expand=False, pady=10)
        right_scrollbar.pack(side="right", fill="y", pady=10)

    def create_right_frame_widgets(self):
        self.set_lables_right_frame()
        self.create_radio_button("Maksymalizacja", True, self.max_min_method, 1, 1, "W")
        self.create_radio_button("Minimalizacja", False, self.max_min_method, 1, 1, "E")

        self.range_min = self.create_spinbox(-100, 100, 1, 11, "normal")
        self.range_min.grid(row=2, column=0, padx=(0, 112), sticky="E")

        self.range_max = self.create_spinbox(-100, 100, 1, 11, "normal")
        self.range_max.grid(row=2, column=0, padx=(0, 10), sticky="E")

        self.chromosome_precision = self.create_spinbox(0, 1, 0.01, 28, "normal")
        self.chromosome_precision.grid(row=3, column=0, padx=(0, 10), sticky="E")

        self.population_size = self.create_spinbox(0, 1000, 1, 28, "normal")
        self.population_size.grid(row=4, column=0, padx=(0, 10), sticky="E")

        self.num_of_epochs = self.create_spinbox(0, 1000, 1, 28, "normal")
        self.num_of_epochs.grid(row=5, column=0, padx=(0, 10), sticky="E")

        self.selection_option = ttk.Combobox(self.right_scrollable_frame, values=SELECTION_TYPE, width=20)
        self.selection_option.set("-- Nie wybrano --")
        self.selection_option.grid(row=6, column=0, padx=(0, 18), sticky="E")

        self.crossing_option = ttk.Combobox(self.right_scrollable_frame, values=CROSSING_TYPE, width=20)
        self.crossing_option.set("-- Nie wybrano --")
        self.crossing_option.grid(row=7, column=0, padx=(0, 18), sticky="E")

        self.crossing_precision = self.create_spinbox(0, 10, 0.1, 28, "normal")
        self.crossing_precision.grid(row=8, column=0, padx=(0, 10), sticky="E")

        self.mutation_option = ttk.Combobox(self.right_scrollable_frame, values=MUTATION_TYPE, width=20)
        self.mutation_option.set("-- Nie wybrano --")
        self.mutation_option.grid(row=9, column=0, padx=(0, 18), sticky="E")

        self.mutation_precision = self.create_spinbox(0, 10, 0.1, 28, "normal")
        self.mutation_precision.grid(row=10, column=0, padx=(0, 10), sticky="E")

        self.inversion_precision = self.create_spinbox(0, 10, 0.1, 28, "normal")
        self.inversion_precision.grid(row=11, column=0, padx=(0, 10), sticky="E")

        self.num_of_function_variables = self.create_spinbox(0, 1000, 1, 28, "normal")
        self.num_of_function_variables.grid(row=12, column=0, padx=(0, 10), sticky="E")

        self.tournament_size = self.create_spinbox(0, 1000, 1, 28, "normal")
        self.tournament_size.grid(row=13, column=0, padx=(0, 10), sticky="E")

        self.population_procent = self.create_spinbox(0, 100, 1, 28, "normal")
        self.population_procent.grid(row=14, column=0, padx=(0, 10), sticky="E")

        self.elit_strategy_population_procent = self.create_spinbox(0, 100, 1, 28, "disable")
        self.elit_strategy_population_procent.grid(row=15, column=0, padx=(0, 10), sticky="E")

        self.elit_strategy_population_size = self.create_spinbox(0, 1000, 1, 28, "disable")
        self.elit_strategy_population_size.grid(row=16, column=0, padx=(0, 10), sticky="E")

        self.button2 = Button(self.right_scrollable_frame, text="Start", bg=RIGHT_FRAME_FONT_COLOR, fg="white",
                              borderless=1,
                              takefocus=0, width=round(self.width * 0.55 - 100), command=self.plot)
        self.button2.grid(row=20, columnspan=2, pady=15, sticky="S")

    def set_lables_right_frame(self):
        self.crate_title_label(0)
        self.create_label("Przedział funkcji", 2)
        self.create_label("Dokładność chromosomu", 3)
        self.create_label("Wielkość populacji", 4)
        self.create_label("Liczba epok", 5)
        self.create_label("Metoda selekcji", 6)
        self.create_label("Krzyżowanie", 7)
        self.create_label("Prawdopodobieństwo krzyżowania", 8)
        self.create_label("Mutacja", 9)
        self.create_label("Prawdopodobieństwo mutacji", 10)
        self.create_label("Prawdopodobieństwo inwersji", 11)
        self.create_label("Liczba zmiennych funkcji", 12)
        self.create_label("Wielkość turnieju", 13)
        self.create_label("Procent osobników", 14)
        self.create_radio_button("Procent osobników (Strategia elitarna)", 1, self.method, 15, 1, "W")
        self.create_radio_button("Liczba osobników (Strategia elitarna)", 2, self.method, 16, 1, "W")

    def crate_title_label(self, row):
        return tk.Label(self.right_scrollable_frame,
                        text="Algorytm genetyczny znajdujący maks/min w Funkcji Beale",
                        font="system-ui 15 bold",
                        bg=RIGHT_FRAME_BACKGROUND_COLOR, fg=RIGHT_FRAME_TITLE_COLOR).grid(row=row, column=0, padx=20,
                                                                                          pady=5,
                                                                                          sticky="N")

    def create_label(self, title, row):
        return tk.Label(self.right_scrollable_frame,
                        text=title,
                        font="system-ui 12 bold",
                        bg=RIGHT_FRAME_BACKGROUND_COLOR, fg=RIGHT_FRAME_FONT_COLOR).grid(row=row, column=0, padx=20,
                                                                                         pady=10,
                                                                                         sticky="W")

    def create_time_label(self, text):
        self.time_label = tk.Label(self.right_scrollable_frame, text="Obliczenia wykonały się w : %.5g sekund" % text,
                                   font="system-ui 12 bold",
                                   bg=RIGHT_FRAME_BACKGROUND_COLOR, fg=RIGHT_FRAME_FONT_COLOR).grid(row=19, column=0,
                                                                                                    padx=20, pady=10,
                                                                                                    sticky="W")

    def create_spinbox(self, _from, _to, _increment, width, state):
        return tk.Spinbox(self.right_scrollable_frame, from_=_from, to=_to,
                          increment=_increment,
                          textvariable=tk.DoubleVar(value=0),
                          font="SYSTEM-UI 10",
                          bg="#FFFFFF",
                          fg='#000000',
                          width=width,
                          state=state)

    def create_radio_button(self, title, val, variable, row, column, place):
        s = ttk.Style()
        s.configure("Wild.TRadiobutton",
                    foreground=RIGHT_FRAME_FONT_COLOR,
                    font="system-ui 12 bold")

        return ttk.Radiobutton(self.right_scrollable_frame,
                               text=title,
                               style="Wild.TRadiobutton",
                               value=val, variable=variable,
                               command=lambda: self.normal_or_disabled()).grid(row=row, columnspan=column,
                                                                               padx=(20, 20), pady=10,
                                                                               sticky=place)

    def get_seletced_parameters(self):
        is_max = self.max_min_method.get()
        from_x1 = self.range_min.get()
        to_x1 = self.range_max.get()
        chrom_precision = self.chromosome_precision.get()
        pop_size = self.population_size.get()
        epoch_num = self.num_of_epochs.get()
        select_type = self.selection_option.get()
        cross_type = self.crossing_option.get()
        cross_precision = self.crossing_precision.get()
        mut_type = self.mutation_option.get()
        mut_precision = self.mutation_precision.get()
        invers_precision = self.inversion_precision.get()
        fun_variables_num = self.num_of_function_variables.get()
        tour_size = self.tournament_size.get()
        pop_procent = self.population_procent.get()
        elit_strategy_pop_procent = self.elit_strategy_population_procent.get()
        elit_strategy_pop_size = self.elit_strategy_population_size.get()

        for i in range(len(SELECTION_TYPE)):
            if select_type == SELECTION_TYPE[i]:
                select_type = SelectionType(i + 1)

        for i in range(len(CROSSING_TYPE)):
            if cross_type == CROSSING_TYPE[i]:
                cross_type = CrossingType(i + 1)

        for i in range(len(MUTATION_TYPE)):
            if mut_type == MUTATION_TYPE[i]:
                mut_type = MutationType(i + 1)

        # print(is_max)
        # print(from_x1)
        # print(to_x1)
        # print(chrom_precision)
        # print(pop_size)
        # print(epoch_num)
        # print(select_type)
        # print(cross_type)
        # print(cross_precision)
        # print(mut_type)
        # print(mut_precision)
        # print(invers_precision)
        # print(fun_variables_num)
        # print(tour_size)
        # print(pop_procent)
        # print(elit_strategy_pop_procent)
        # print(elit_strategy_pop_size)

        return int(epoch_num), int(pop_size), int(fun_variables_num), int(from_x1), int(
            to_x1), float(chrom_precision), select_type, mut_type, cross_type, is_max, float(1), float(
            mut_precision), float(cross_precision), float(invers_precision), int(tour_size), int(pop_procent), int(
            elit_strategy_pop_procent), int(elit_strategy_pop_size)

    def normal_or_disabled(self):
        if self.method.get() == 1:
            self.elit_strategy_population_procent.configure(state="normal")
            self.elit_strategy_population_size.configure(state="disable")
        elif self.method.get() == 2:
            self.elit_strategy_population_procent.configure(state="disable")
            self.elit_strategy_population_size.configure(state="normal")

    def plot(self):
        start_time = datetime.now()
        algorithm = GeneticAlgorithm(bale_function, *self.get_seletced_parameters())
        best_solution_in_epochs, solution_mean, solution_std = algorithm.run_algorithm()
        end_time = datetime.now()

        self.create_time_label((end_time - start_time).total_seconds())

        x = np.array([x + 1 for x in range(0, len(best_solution_in_epochs))])
        best = np.array(best_solution_in_epochs)
        mean = np.array(solution_mean)
        std = np.array(solution_std)

        # ----------------------------------------------------------------------

        fig_best = Figure(figsize=(5, 5))
        b = fig_best.add_subplot(111)
        b.plot(x, best, color="blue")

        b.set_title("Wartości funkcji", fontsize=12)
        b.set_ylabel("Y", fontsize=10)
        b.set_xlabel("X", fontsize=10)

        canvas_best = FigureCanvasTkAgg(fig_best, master=self.left_scrollable_frame)
        canvas_best.get_tk_widget().grid(column=0, row=0)
        canvas_best.draw()
        fig_best.savefig('../Plots/wartosc_funkcji.png')

        # ----------------------------------------------------------------------

        fig_mean = Figure(figsize=(5, 5))
        m = fig_mean.add_subplot(111)
        m.plot(x, mean, color="blue")

        m.set_title("Średnie wartości funkcji", fontsize=12)
        m.set_ylabel("Y", fontsize=10)
        m.set_xlabel("X", fontsize=10)

        canvas_mean = FigureCanvasTkAgg(fig_mean, master=self.left_scrollable_frame)
        canvas_mean.get_tk_widget().grid(column=0, row=1)
        canvas_mean.draw()
        fig_mean.savefig('../Plots/srednie_wartosci_funkcji.png')

        # ----------------------------------------------------------------------

        fig_std = Figure(figsize=(5, 5))
        s = fig_std.add_subplot(111)
        s.plot(x, std, color="blue")

        s.set_title("Odchylenie standardowe", fontsize=12)
        s.set_ylabel("Y", fontsize=10)
        s.set_xlabel("X", fontsize=10)

        canvas_std = FigureCanvasTkAgg(fig_std, master=self.left_scrollable_frame)
        canvas_std.get_tk_widget().grid(column=0, row=2)
        canvas_std.draw()
        fig_std.savefig('../Plots/odchylenie_standardowe.png')
コード例 #11
0
ファイル: login.py プロジェクト: pcireus/FunSmart
loginUsernameLable = Label(frame, text="Username")
loginUsernameLable.grid(row=0, column=0)

loginUsernameEntry = Entry(frame, width=20)
loginUsernameEntry.grid(row=0, column=1)

#Password label and entry
loginPasswordLable = Label(frame, text="Password")
loginPasswordLable.grid(row=1, column=0)

loginPasswordEntry = Entry(frame, width=20, show="*")
loginPasswordEntry.grid(row=1, column=1)

#Login button
login = Button(frame, text="Login", bg="lightgreen", command=checkLogin)
login.grid(row=2, column=0)

#Global profile variable
var_name = StringVar()
FnameEntry = StringVar()
LnameEntry = StringVar()
usernameEntry = StringVar()
passwordEntry = StringVar()
confirmPasswordEntry = StringVar()
securityQuestion1Entry = StringVar()
securityQuestion2Entry = StringVar()

#signUp button
signUp = Button(frame, text="Sign Up", bg="lightgreen", command=createProfile)
signUp.grid(row=2, column=1)
コード例 #12
0
card_front_img = PhotoImage(file="images/card_front.png")
card_image = canvas.create_image((400, 263), image=card_front_img)
card_title = canvas.create_text(400,
                                150,
                                text="Title",
                                font=("Ariel", 40, "italic"))
card_word = canvas.create_text(400,
                               263,
                               text="Word",
                               font=("Ariel", 60, "bold"))
canvas.grid(row=0, column=0, columnspan=2)

unknown_button_img = PhotoImage(file="images/wrong.png")
unknown_button = Button(image=unknown_button_img,
                        highlightthickness=0,
                        bg=BACKGROUND_COLOR,
                        borderless=1,
                        command=next_card)
unknown_button.grid(row=1, column=0)

check_button_img = PhotoImage(file="images/right.png")
check_button = Button(image=check_button_img,
                      highlightthickness=0,
                      bg=BACKGROUND_COLOR,
                      borderless=1,
                      command=next_card)
check_button.grid(row=1, column=1)
next_card()

window.mainloop()
コード例 #13
0
ファイル: sealanes.py プロジェクト: Dragoncore1/tkinter-Dev
lblsealanes_gst = Label(root, text="Input the GST Amount from the Sealanes Invoice: ", bg="#4ca6a6", fg="#FFFFFF")
lblsealanes_gst.grid(row=2, column=0, pady=10, sticky="W")

lblcrunch_ex = Label(root, text="Input the EX-GST Amount from Crunchtime: ", bg="#4ca6a6", fg="#FFFFFF")
lblcrunch_ex.grid(row=3, column=0, pady=10, sticky="W")

lblcrunch_gst = Label(root, text="Input the GST Amount from Crunchtime: ", bg="#4ca6a6", fg="#FFFFFF")
lblcrunch_gst.grid(row=4, column=0, pady=10, sticky="W")

lblcogs_food = Label(root, text="Input the COGS Food Amount from Crunchtime: ", bg="#4ca6a6", fg="#FFFFFF")
lblcogs_food.grid(row=5, column=0, pady=10, sticky="W")

# Create Buttons
btnCalc = Button(root, text="Calculate", borderless=1, relief='sunken', bordercolor='#000000', pady=10, padx=30, bg='#4c79a6', fg='#FFFFFF', width=123, command=calculate)
btnCalc.grid(row=6, column=1, sticky="W")
# Button To reset
btnReset = Button(root, text="Reset", borderless=1, relief='sunken', bordercolor='#000000', pady=10, padx=30, bg='#4c79a6', fg='#FFFFFF', width=130, command=reset)
btnReset.grid(row=9, column=0, sticky="W")
# Button To Exit
btnfinish = Button(root, text="Exit", borderless=1, relief='sunken', bordercolor='#000000', pady=10, padx=30, bg='#4c79a6', fg='#FFFFFF', width=130, command=finish)
btnfinish.grid(row=9, column=1, sticky="W")

# Label for GST Amount Output
lbloutadd = Label(root, text="Add a food line with a total of", bd=0, bg='#4ca6a6', fg='#FFFFFF')
lbloutadd.grid(row=7, column=0, padx=10, pady=10, sticky="W")
# Label for GST Amount Output
lbloutnewfood = Label(root, text="Change the existing COGS Food to", bd=0, bg='#4ca6a6', fg='#FFFFFF')
lbloutnewfood.grid(row=8, column=0, padx=10, pady=10, sticky="W")

# Output boxes
コード例 #14
0
class TinyCalculatorApp:
    def __init__(self, master):
        master.title("Tiny Calculator")
        master.configure(bg='light gray')
        master.geometry("240x150")
        self.exp = self.num = ''
        self.calcScreen = Label(master,
                                bd=5,
                                wraplength=40,
                                textvariable=self.exp,
                                bg='white',
                                font=("Arial Bold", 16),
                                relief='sunken')
        self.calcScreen.grid(row=0, column=1, columnspan=2, sticky='ew')

        # row 4 buttons
        self.bt1 = Button(master,
                          text='1',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('1'))
        self.bt1.grid(column=0, row=4)
        self.bt2 = Button(master,
                          text='2',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('2'))
        self.bt2.grid(column=1, row=4)
        self.bt3 = Button(master,
                          text='3',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('3'))
        self.bt3.grid(column=2, row=4)

        # row 3 buttons
        self.bt4 = Button(master,
                          text='4',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('4'))
        self.bt4.grid(column=0, row=3)
        self.bt5 = Button(master,
                          text='5',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('5'))
        self.bt5.grid(column=1, row=3)
        self.bt6 = Button(master,
                          text='6',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('6'))
        self.bt6.grid(column=2, row=3)

        # row 2 buttons
        self.bt7 = Button(master,
                          text='7',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('7'))
        self.bt7.grid(column=0, row=2)
        self.bt8 = Button(master,
                          text='8',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('8'))
        self.bt8.grid(column=1, row=2)
        self.bt9 = Button(master,
                          text='9',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('9'))
        self.bt9.grid(column=2, row=2)

        # row 5 buttons
        self.btc = Button(master,
                          text='on/c',
                          height=20,
                          width=60,
                          bg='red',
                          fg='white',
                          borderless=1,
                          command=lambda: self.click('c'))
        self.btc.grid(column=0, row=5)
        self.bt0 = Button(master,
                          text='0',
                          height=20,
                          width=60,
                          borderless=1,
                          command=lambda: self.click('0'))
        self.bt0.grid(column=1, row=5)
        self.btdec = Button(master,
                            text='.',
                            height=20,
                            width=60,
                            borderless=1,
                            command=lambda: self.click('.'))
        self.btdec.grid(column=2, row=5)

        # operation buttons
        self.btneg = Button(master,
                            text='+/-',
                            height=20,
                            width=60,
                            bg='red',
                            fg='white',
                            borderless=1,
                            command=lambda: self.click("+/-"))
        self.btneg.grid(column=0, row=1)
        self.btplus = Button(master,
                             text='+',
                             height=20,
                             width=60,
                             bg='red',
                             fg='white',
                             borderless=1,
                             command=lambda: self.click('+'))
        self.btplus.grid(column=3, row=4)
        self.btminus = Button(master,
                              text='-',
                              height=20,
                              width=60,
                              bg='red',
                              fg='white',
                              borderless=1,
                              command=lambda: self.click('-'))
        self.btminus.grid(column=3, row=3)
        self.bttimes = Button(master,
                              text='*',
                              height=20,
                              width=60,
                              bg='red',
                              fg='white',
                              borderless=1,
                              command=lambda: self.click('*'))
        self.bttimes.grid(column=3, row=2)
        self.btdiv = Button(master,
                            text='/',
                            height=20,
                            width=60,
                            bg='red',
                            fg='white',
                            borderless=1,
                            command=lambda: self.click('/'))
        self.btdiv.grid(column=3, row=1)
        self.btmod = Button(master,
                            text='%',
                            height=20,
                            width=60,
                            bg="red",
                            fg='white',
                            borderless=1,
                            command=lambda: self.click('%'))
        self.btmod.grid(column=2, row=1)
        self.btequals = Button(master,
                               text='=',
                               height=20,
                               width=60,
                               bg='red',
                               fg='white',
                               borderless=1,
                               command=lambda: self.click('='))
        self.btequals.grid(column=3, row=5)
        self.btsqrt = Button(master,
                             text='sqrt',
                             height=20,
                             width=60,
                             bg='red',
                             fg='white',
                             borderless=1,
                             command=lambda: self.click('sqrt'))
        self.btsqrt.grid(column=1, row=1)

    def click(self, val):
        if val == 'c':
            self.exp = self.num = ''
            self.calcScreen.configure(text=self.exp)
        elif val == '=':
            self.exp += self.num
            self.calcScreen.configure(text=eval(self.exp))
            self.num = str(eval(self.exp))
            self.exp = ''
        elif val == 'sqrt':
            sqrt_num = sqrt(float(self.num))
            self.num = str(sqrt_num)
        elif val == '+/-':
            self.exp += '-'
        else:
            self.num += val
            if not val.isdigit():
                self.exp += self.num
                self.num = ''
            self.calcScreen.configure(text=self.num)
コード例 #15
0
ファイル: main.py プロジェクト: ryutamura/polyglottal
                   text='Rec',
                   relief=GROOVE,
                   borderwidth=5,
                   padx=30,
                   pady=20,
                   command=gui_record5)
button_20 = Button(frame5,
                   text='Play',
                   relief=GROOVE,
                   borderwidth=5,
                   padx=30,
                   pady=20,
                   command=gui_play5)
#showing frame5
frame5.grid(row=0, column=4, padx=20)
#showing buttons for frame5
button_17.pack(pady=10)
button_18.pack(pady=10)
button_19.pack(pady=10)
button_20.pack(pady=10)
#Binding buttons for frame4
button_18.bind_all("<Key>", key_bind_func)
button_19.bind_all("<Key>", key_bind_func)
button_20.bind_all("<Key>", key_bind_func)

#Create quit button
button_quit = Button(blank, text='Quit', command=root.quit)
button_quit.grid(row=1, column=0, columnspan=10, pady=10)

# Make a eventloop
root.mainloop()
コード例 #16
0
yearVar.set("2003")
yearPicker = tk.OptionMenu(display, yearVar, "2003", "2004", "2005", "2006",
                           "2007", "2008", "2009", "2010", "2011", "2012",
                           "2013", "2014", "2015", "2016", "2017", "2018",
                           "2019")
yearPicker.config(width=10)
yearPicker.grid(row=3, column=2)
setDate = Button(display,
                 text="DONE",
                 command=get_date,
                 bg="black",
                 fg="white",
                 padx=5,
                 pady=5,
                 borderless=1)
setDate.grid(row=4, column=1, columnspan=2, pady=(10, 0))


def change_date(*args):
    return (dayVar.get() + " " + monthVar.get() + ", " + yearVar.get())


dayVar.trace('w', change_date)
monthVar.trace('w', change_date)
yearVar.trace('w', change_date)


def show_results(row, label, color, results, day, move):
    print("Avg. Temperature: " + str(get_avg_temp(row)))
    print("Avg. Wind Speed: " + str(get_wind(row)))
    print("Total Precipitation: " + str(get_rain(row)))
コード例 #17
0
ファイル: encryption_gui.py プロジェクト: vendz/Encryption
frame_top.pack(side=tk.TOP)

frame_left = tk.Frame(root, width=800, relief=tk.FLAT)
frame_left.pack(side=tk.LEFT)

#---giving heading for program---
heading = tk.Label(frame_top,font=('helvetica', 50, 'bold'), text = "Encryption and Decryption\nusing Vendz cipher", fg = "black", bd=10, anchor='w')
heading.grid(row=0, column=0)

#---label for file---
file_label = tk.Label(frame_left, font=('ariel', 16, 'bold'), text='Select a File:', fg='black', anchor='w')
file_label.grid(row=1, column=0)

#---asking for file---
file_button = Button(frame_left, text = "open file", padx = 10, pady = 5, bg = "#263D42", fg = "white", activebackground = "#263D32", command = add_file)
file_button.grid(row=1, column=1)

#---label for password---
label_password = tk.Label(frame_left, font=('ariel', 16, 'bold'), text='Enter the Password', bd=16, anchor='w')
label_password.grid(row=2, column=0)

#---asking for password---
password_input = tk.Entry(frame_left, font=('ariel', 16, 'bold'), textvariable=password, bd=10, insertwidth=4, bg='powder blue', justify='right', relief=tk.FLAT)
password_input.grid(row=2, column=1)

#---label for mode selection---
mode_label = tk.Label(frame_left, font=('ariel', 16, 'bold'),padx=20, text='Do you want to Encrypt(\'e\') or Decrypt(\'d\')', bd=16, anchor='w')
mode_label.grid(row=3, column=0)

#---asking for mode input---
mode_input = tk.Entry(frame_left, font=('ariel', 16, 'bold'), textvariable=mode, bd=10, insertwidth=4, bg='powder blue', justify='right', relief=tk.FLAT)
コード例 #18
0
    button.append(Button(root, text=str(rows+5)+":00", command=lambda i=i: hit(i)))
    button[i].grid(row = rows, column = cols)
    if rows == 13:
        cols+=1
        rows = 3
    else:
        rows+=1
TotalButtons = 55

##==================================================================================================
##============================================ EDIT MODE ===========================================
##==================================================================================================

editModeButton = Button(root, text = "EDIT", fg = "black", height = 40, command=lambda: changeMode(1))
editModeButton.grid(row=14, column=1)


#get users names by reading info.txt (contains all timetables + names)
f = open("/Users/ajvidetta/Desktop/python/timetable arrange/info.txt", "r")
contents = eval(f.read())
f.close

names = []
for key in contents[0]:
    names.append(key)
print(names)


def change_dropdown(*args):
    name = tkvar.get()
コード例 #19
0
ファイル: numsum_gui.py プロジェクト: nbowd/numsum
    def __init__(self):
        """Initialize all the variables of the GUI and of Numsum."""
        self.height = 700
        self.width = 800
        self.game = Numsum()
        self.text_color = '#57D9A3'
        self.button_color = '#3B3B3B'
        self.background_color = '#222222'
        self.font = 'Silom'

        self._root = Tk()
        self._root.title("Numsum")
        self._root.resizable(width=False, height=False)  # Fixed size

        # The canvas is where the text and other game stats will be displayed
        self.canvas = Canvas(self._root,
                             height=self.height,
                             width=self.width,
                             bg=self.background_color)
        self.canvas.pack()

        # A separate container inside the canvas to place the button grid
        self.frame = Frame(self._root)
        self.frame.place(relx=0.2, rely=0.192, relwidth=0.6,
                         relheight=0.6)  # 60% of the screen size
        # Expands rows and columns of the frame's grid for widget resizing, without this the buttons stay small.
        Grid.rowconfigure(self.frame, [0, 1, 2], weight=1)
        Grid.columnconfigure(self.frame, [0, 1, 2], weight=1)

        # Player 1 label
        self.player_one_label = Label(self.canvas,
                                      text='Player\n 1',
                                      font=[self.font, 40],
                                      bg=self.background_color,
                                      fg=self.text_color)
        self.player_one_label.place(relx=0.01, rely=0.02)

        # Player 2 label
        self.player_two_label = Label(self.canvas,
                                      text='Player\n 2',
                                      font=[self.font, 40],
                                      bg=self.background_color,
                                      fg=self.text_color)
        self.player_two_label.place(relx=0.80, rely=0.02)

        # A solid line that separates number pad from player labels
        self.canvas.create_line(0,
                                131,
                                800,
                                131,
                                width=5,
                                fill=self.text_color)

        # A collection (list) to hold the references to the buttons created below
        self.buttons = []
        self._button_font_size = font.Font(
            size=30
        )  # Buttons don't work consistently on MacOS, this setting helps out.

        # Initializes buttons in frame
        for index in range(1, 10):
            button_number = index
            # index-1 because the buttons numbers start at 1 and the list indices starting at 0.
            grid_index = index - 1
            # lambda passes vars from this function as parameters to button_click and calls that function on each press.
            button = Button(
                self.frame,
                bg=self.button_color,
                fg=self.text_color,
                text=button_number,
                command=lambda index=grid_index, button_number=button_number:
                self.button_click(index, button_number))
            # sets font on separate line because of MacOS button issues.
            button['font'] = self._button_font_size
            # Add the button to the window
            button.grid(row=floor((grid_index / 3)),
                        column=(grid_index % 3),
                        sticky="nsew")
            # Add a reference to the newly created button to the list 'buttons'
            self.buttons.append(button)

        # Rules button, triggers popout window
        self.rules_button = Button(self.canvas,
                                   text='Rules',
                                   font=[self.font, 15],
                                   bg=self.button_color,
                                   fg=self.text_color,
                                   width=60,
                                   height=40,
                                   command=self.popup_rules)
        self.rules_button.place(relx=0.91, rely=0.93)

        # Main tkinter loop
        self._root.mainloop()
コード例 #20
0
class Sample(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.resizable(0, 0)
        self.geometry('420x700+300+100')
        self.title('Mac OSX Button Testing')
        self.wm_attributes('-modified', 1)
        self.main_color = ColorVar(value='#ffe6f4')
        self['bg'] = self.main_color
        grid(self, 25, 5)
        self.L1 = tk.Label(self, text='Comparison',
                           bg=self.main_color, font=('', 18, 'bold'))
        self.L1.grid(row=0, column=0, columnspan=5, sticky='nsew')
        Button(self, text='Hello').grid(row=1, column=1, sticky='s')
        ttk.Button(self, text='Hello').grid(row=1, column=3, sticky='s')
        tk.Button(self, text='Hello').grid(row=1, column=2, sticky='s')
        tk.Label(self, bg=self.main_color, font=('', 10),
                 text='(Mac OSX)').grid(row=2, column=1, sticky='n',)
        tk.Label(self, bg=self.main_color, font=('', 10),
                 text='(ttk themed)').grid(row=2, column=3, sticky='n')
        tk.Label(self, bg=self.main_color, font=('', 10),
                 text='(Default)').grid(row=2, column=2, sticky='n')
        ttk.Separator(self, orient='vertical').grid(
            row=3, column=0, columnspan=5, sticky='ew')

        # ------------ Seperator -------------

        # ------------ Demonstration ------------

        self.sfr = SFrame(self, bg=self.main_color)
        self.sfr.grid(rowspan=27, columnspan=5, sticky='nsew')
        for i in range(5):
            self.sfr.grid_columnconfigure(i, weight=1)
        self.L2 = tk.Label(self.sfr, text='Demonstration',
                           bg=self.main_color, font=('', 20, 'bold'))
        self.L2.grid(row=1, column=0, columnspan=5,
                     sticky='new', pady=(20, 10))

        # ------------ Active Color ------------

        self.L3 = tk.Label(self.sfr, text='1. Change Active color', bg=self.main_color,
                           font=('', 15, 'bold'))
        self.L3.grid(row=2, column=0, columnspan=5, sticky='nsew', pady=10)
        self.L4 = tk.Label(self.sfr, text='The active color can be changed to any gradient color.',
                           bg=self.main_color, font=('', 10))
        self.L4.grid(row=3, column=0, columnspan=5, sticky='new')
        self.B1 = Button(self.sfr, text='Press Me', pady=20)
        self.B1.grid(row=4, column=0, columnspan=5, pady=20)
        self.C1 = tk.StringVar(value='Select')
        self.L5 = tk.Label(self.sfr, text='From',
                           bg=self.main_color, font=('', 12))
        self.L5.grid(row=5, column=1, sticky='ew')

        self.L6 = tk.Label(self.sfr, text='To',
                           bg=self.main_color, font=('', 12))
        self.L6.grid(row=5, column=3, sticky='ew')
        
        button_container1 = tk.Frame(self.sfr, bg=self.main_color)
        button_container1.grid(row=6, column=0, columnspan=5,
                              sticky='ew', pady=10, padx=10)
        button_container1.columnconfigure(0, weight=1)
        button_container1.columnconfigure(1, weight=1)
        self.Om1_b = Button(button_container1, text='Change Color',
                         bg='#d0c0ea', borderless=1)
        self.Om1_b.grid(row=0, column=0, padx=(0, 2), sticky='ew')
        self.Om2_b = Button(button_container1, text='Change Color',
                         bg="#d0c0ea", borderless=1)
        self.Om2_b.grid(row=0, column=1, sticky='ew')
        self.Om1_b['command'] = lambda: self.change_active_color(1)
        self.Om2_b['command'] = lambda: self.change_active_color(2)

        # ------------ Background Color ------------

        self.L7 = tk.Label(self.sfr, text='2. Change Background color', bg=self.main_color,
                           font=('', 15, 'bold'))
        self.L7.grid(row=7, column=0, columnspan=5,
                     sticky='nsew', pady=(50, 0))
        self.L8 = tk.Label(self.sfr, text='Click on the button to choose the color.',
                           bg=self.main_color, font=('', 10))
        self.L8.grid(row=8, column=0, columnspan=5, sticky='new', pady=10)

        self.B2 = Button(self.sfr, text='Color me',
                         font=('', 30,), pady=10)
        self.B2.grid(row=9, column=0, columnspan=5, sticky='', pady=20)

        button_container2 = tk.Frame(self.sfr, bg=self.main_color)
        button_container2.grid(row=10, column=0, columnspan=5,
                              sticky='ew', pady=10, padx=10)
        button_container2.columnconfigure(0, weight=1)
        button_container2.columnconfigure(1, weight=1)
        self.B3 = Button(button_container2, text='Change Background Color',
                         bg='#d0c0ea', borderless=1)
        self.B3['command'] = lambda: self.B2.config(bg=askcolor()[1])
        self.B3.grid(row=0, column=0, padx=(0, 2))
        self.B4 = Button(button_container2, text='Change Foreground Color',
                         bg="#d0c0ea", borderless=1)
        self.B4['command'] = lambda: self.B2.config(fg=askcolor()[1])
        self.B4.grid(row=0, column=1)

        # ------------ Borderless ------------

        self.L9 = tk.Label(self.sfr, text='3. Switch Between Borderless', bg=self.main_color,
                           font=('', 15, 'bold'))
        self.L9.grid(row=11, column=0, columnspan=5,
                     sticky='sew', pady=(50, 0))
        self.L10 = tk.Label(self.sfr, text="""
    In borderless it will blend with its parent widget background color.
    Give parameter `borderless = True / False` to use it.""", bg=self.main_color, font=('', 10))
        self.L10.grid(row=12, column=0, columnspan=5, sticky='new')

        self.B5 = Button(self.sfr, text='No Borders', borderless=1, height=40,
                         bg='#212F3D', fg='white', activebackground=("#EAECEE", "#212F3D"))
        self.B5.grid(row=13, columnspan=5, pady=(20, 5))

        self.B6 = Button(self.sfr, text='No Borders', borderless=1, height=40,
                         bg='#F7DC6F', fg='#21618C', activebackground=('#B3B6B7', '#58D68D'))
        self.B6.grid(row=14, columnspan=5, pady=(0, 20))
        self.var1 = tk.BooleanVar(value=True)
        self.CB1 = tk.Checkbutton(self.sfr, text='Toggle Borderless', variable=self.var1,
                                  bg=self.main_color, command=self.change_borderless_state)
        self.CB1.grid(row=15, columnspan=5, pady=(0, 10))

        # ------------ Bordercolor ------------

        self.L11 = tk.Label(self.sfr, text='4. Change Bordercolor', bg=self.main_color,
                            font=('', 15, 'bold'))
        self.L11.grid(row=16, column=0, columnspan=5,
                      sticky='sew', pady=(50, 0))
        self.L12 = tk.Label(self.sfr, text="Change Bordercolor of the button\nNote: if borderless=True, then the bordercolor won't work.",
                            bg=self.main_color, font=('', 10))
        self.L12.grid(row=17, column=0, columnspan=5, sticky='new')

        self.B7 = Button(self.sfr, text='Button', pady=10,
                         padx=5, font=('Zapfino', 12, 'bold'))
        self.B7.grid(row=18, columnspan=5, pady=30)

        self.CS1 = Colorscale(self.sfr, value='hex', mousewheel=1,
                              command=lambda e: self.B7.config(bordercolor=e))
        self.CS1.grid(row=19, columnspan=5, sticky='ew', padx=10)

        self.CS2 = Colorscale(self.sfr, value='hex', mousewheel=1,
                              gradient=('#FCF6F5', '#990011'),
                              command=lambda e: self.B7.config(bg=e))
        self.CS2.grid(row=20, columnspan=5, sticky='ew', padx=10, pady=5)

        self.CS3 = Colorscale(self.sfr, value='hex', mousewheel=1,
                              gradient=('green', 'yellow'),
                              command=lambda e: self.B7.config(fg=e))
        self.CS3.grid(row=21, columnspan=5, sticky='ew', padx=10)

        self.CS4 = Colorscale(self.sfr, value='hex', mousewheel=1,
                              gradient=('pink', 'purple'),
                              command=lambda e: self.B7.config(overforeground=e))
        self.CS4.grid(row=22, columnspan=5, sticky='ew', padx=10, pady=5)

        # ------------ Random button styling ------------
        self.L11 = tk.Label(self.sfr, text='5. Button Styling', bg=self.main_color,
                            font=('', 15, 'bold'))
        self.L11.grid(row=23, column=0, columnspan=5,
                      sticky='sew', pady=(50, 0))
        self.L12 = tk.Label(self.sfr, text="Press the button to ramdomise the style of the button.",
                            bg=self.main_color, font=('', 10))
        self.L12.grid(row=24, column=0, columnspan=5, sticky='new')

        self.B10 = Button(self.sfr, text='Button', borderless=1)
        self.B10.grid(row=25, columnspan=5, pady=20)

        self.B11 = Button(self.sfr, text='Change Style', borderless=1, fg='#21618C',
                          activebackground=('#B3B6B7', '#58D68D'), command=self.change_button_style)
        self.B11.grid(row=26, columnspan=5, ipady=5)

        self.button_clicks = 1
        self.Text1 = tk.Text(self.sfr, background=self.main_color, highlightthickness=0,
                             relief='sunken', height=20, bd=2, padx=10)
        self.Text1.grid(row=27, columnspan=5, pady=20, padx=20)
        self.sfr._avoid_mousewheel(
            (self.Text1, self.CS1, self.CS2, self.CS3, self.CS4))
        self.change_button_style()
        self.update_idletasks()

    def change_active_color(self, num):
        hexcode = askcolor()[1]
        if num == 1:
            self.Om1_b['bg'] = self.Om1_b['text'] = hexcode
            self.Om1_b['fg'] = check_light_dark(hexcode)
        else:
            self.Om2_b['bg'] = self.Om2_b['text'] = hexcode
            self.Om2_b['fg'] = check_light_dark(hexcode)
        self.B1['activebackground'] = (self.Om1_b['bg'], self.Om2_b['bg'])

    def change_borderless_state(self):
        if self.var1.get():
            self.B5['borderless'] = 1
            self.B6['borderless'] = 1
        else:
            self.B5['borderless'] = 0
            self.B6['borderless'] = 0

    def change_button_style(self):
        cnf = dict(
            foreground=get_random_colors(),
            background=get_random_colors(),
            activebackground=get_random_colors(2),
            activeforeground=get_random_colors(),
            overrelief=get_random_relief(),
            relief=get_random_relief(),
            highlightthickness=get_random_size(1, 1, 5),
            borderwidth=get_random_size(1, 1, 5),
            font=get_random_font(),
            highlightbackground=get_random_colors(),
            focuscolor=get_random_colors(),
            overbackground=get_random_colors(),
            overforeground=get_random_colors(),
        )
        self.B10.config(**cnf)

        self.Text1.insert('end', '\n\nBUTTON STYLE %s\n\n' %
                          self.button_clicks)
        for k, v in cnf.items():
            if k == 'font':
                self.Text1.insert('end', 'font:\n')
                for i, j in v.config().items():
                    self.Text1.insert('end', '\t%s\t\t= %s\n' % (i, j))
            else:
                self.Text1.insert('end', '%s\t\t\t= %s\n' % (k, v))
        self.Text1.see('end')
        self.Text1.insert('end', '\n\n'+'-'*40)
        self.button_clicks += 1
        self.sfr['canvas'].yview_moveto('1.0')
        self.update_idletasks()
コード例 #21
0
def app():
    # begin gui
    global root
    root = tk.Tk()

    # root window
    root.title("Runkeeper")
    root.geometry("530x300+1300+290")
    root.configure(bg="#2c6b6f")

    # greeting labels
    greeting1 = tk.Label(root, text="Add Data")
    greeting1.configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 18),
                        pady=16)
    greeting1.grid(row=0, column=1, sticky=tk.N)

    greeting2 = tk.Label(root, text="Enter info below:")
    greeting2.configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 14),
                        pady=4)
    greeting2.grid(row=1, column=1)

    greeting3 = tk.Label(root, text="See Running Statistics")
    greeting3.configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 18),
                        pady=16)
    greeting3.grid(row=0, column=3, sticky=tk.N)

    greeting2 = tk.Label(root, text="Analysis options:")
    greeting2.configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 14),
                        pady=4)
    greeting2.grid(row=1, column=3)

    # spacer
    blank1 = tk.Label(root, text="space")
    blank1.configure(bg="#2c6b6f", fg="#2c6b6f")
    blank1.grid(row=0, column=2)

    # status label
    global status
    status = tk.Label(root, text="Welcome to Runkeeper!")
    status.configure(bg="#2c6b6f", fg="white", font=("Open Sans", 14), pady=4)
    status.grid(row=6, column=1)

    # item labels
    labels = [
        tk.Label(root, text="Date"),
        tk.Label(root, text="Distance"),
        tk.Label(root, text="Duration")
    ]

    labels[0].grid(row=2)
    labels[1].grid(row=3)
    labels[2].grid(row=4)

    labels[0].configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 14),
                        padx=5,
                        pady=4)
    labels[1].configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 14),
                        padx=5,
                        pady=4)
    labels[2].configure(bg="#2c6b6f",
                        fg="white",
                        font=("Open Sans", 14),
                        padx=5,
                        pady=4)

    # entry boxes
    global e1, e2, e3
    e1 = tk.Entry(root)
    e2 = tk.Entry(root)
    e3 = tk.Entry(root)

    e1.insert(0, "10/21/21")
    e2.insert(0, "3.52")
    e3.insert(0, "22:17")

    e1.configure(fg="#808080")
    e2.configure(fg="#808080")
    e3.configure(fg="#808080")

    e1.grid(row=2, column=1)
    e2.grid(row=3, column=1)
    e3.grid(row=4, column=1)

    e1.bind('<FocusIn>', entry_click1)
    e2.bind('<FocusIn>', entry_click2)
    e3.bind('<FocusIn>', entry_click3)

    # submit button
    submitButton = Button(root, text='Submit', command=submit, borderless=1)
    submitButton.configure(pady=4,
                           bg="white",
                           fg="black",
                           font=("Open Sans", 14))
    submitButton.grid(row=5, column=1, pady=4)

    # total distance button
    submitButton = Button(root,
                          text='Total Distance',
                          command=grab_dist,
                          borderless=1)
    submitButton.configure(pady=4,
                           bg="white",
                           fg="black",
                           font=("Open Sans", 14))
    submitButton.grid(row=2, column=3)

    # average pace button
    submitButton = Button(root,
                          text='Average Pace',
                          command=grab_avgpace,
                          borderless=1)
    submitButton.configure(pady=4,
                           bg="white",
                           fg="black",
                           font=("Open Sans", 14))
    submitButton.grid(row=3, column=3)

    # total time button
    submitButton = Button(root,
                          text='Total Time',
                          command=grab_totaltime,
                          borderless=1)
    submitButton.configure(pady=4,
                           bg="white",
                           fg="black",
                           font=("Open Sans", 14))
    submitButton.grid(row=4, column=3)

    # data analysis text
    stats_greeting = tk.Label(root, text="Stats:")
    stats_greeting.configure(bg="#2c6b6f", fg="white", font=("Open Sans", 14))
    stats_greeting.grid(row=5, column=3, pady=8)

    global stats_text
    stats_text = tk.Label(
        root, text="Press a button to view \nyour running statistics.")
    stats_text.configure(bg="#2c6b6f", fg="white", font=("Open Sans", 14))
    stats_text.grid(row=6, column=3, pady=8)

    # keep running until window closed
    root.mainloop()  # keep running until window closed
コード例 #22
0
class GoGUIPlayer():

    ## Decorators
    def valid_stone(func):
        def wrapper(*args, **kwargs):
            if not args[1] or not isinstance(args[1], StoneEnum):
                raise Exception("GPB: Invalid parameter, bad stone passed.")
                return func(*args, **kwargs)
            return wrapper

    def protocol_registered(func):
        def wrapper(*args, **kwargs):
            if not args[0].name:
                raise Exception(
                    "GPB: Invalid protocol, player must be registered first.")
                return func(*args, **kwargs)
            return wrapper

    def protocol_stone_set(func):
        def wrapper(*args, **kwargs):
            if not args[0].stone_type:
                raise Exception(
                    "GPB: Invalid protocol, stone must be received first.")
                return func(*args, **kwargs)
            return wrapper

    # Constructor
    def __init__(self, name=None):
        self.name = name
        self.default_name = "Player 1"
        self.stone_type = None
        self.color = ""
        self.move_referee = MoveReferee()
        self.click = None

        # Creates self.root window
        self.root = Tk()
        self.root.title("Go Game GUI")
        self.root.resizable(0, 0)
        self.root.geometry('1000x1000')

        self.e = Entry(self.root,
                       text="ENTER YOUR NAME HERE",
                       width=20,
                       borderwidth=5,
                       bg="yellow",
                       fg="black")
        self.e.grid(row=0, column=0, columnspan=7)

        self.e1 = Entry(self.root,
                        width=20,
                        borderwidth=5,
                        bg="yellow",
                        fg="black")
        self.e1.grid(row=10, column=0, columnspan=7)

        self.button_register = Button(self.root,
                                      text="Register",
                                      command=self.myClick)
        self.button_move = Button(self.root,
                                  text="Make Move",
                                  command=self.myMove)
        self.pass_move = Button(self.root, text="Pass", command=self.Pass)
        self.button_register.grid(row=0, column=10, columnspan=1)
        self.button_move.grid(row=10, column=10, columnspan=1)
        self.pass_move.grid(row=9, column=10, columnspan=1)

        self.buttons = dict()
        for x in range(1, BOARD_DIM + 1):
            for y in range(1, BOARD_DIM + 1):
                button_num = "{}-{}".format(y, x)
                self.buttons["{}-{}".format(y, x)] = Button(
                    self.root,
                    text=" ",
                    bg="goldenrod",
                    padx=0.0,
                    pady=20,
                    command=lambda butt=button_num: self.button_click(butt))
                self.buttons["{}-{}".format(y, x)].grid(row=x,
                                                        column=y,
                                                        columnspan=1)

    def myClick(self):
        self.name = self.e.get()
        hello = "Welcome to Go, " + self.name
        myLabel = Label(self.root, text=hello)
        myLabel.grid(row=0, column=0, columnspan=3)
        self.button_register.configure(state=DISABLED)

    def button_click(self, button_idx):
        if self.name:
            self.click = button_idx
            self.buttons[self.click].configure(bg=self.color)

    def myMove(self):
        if self.name:
            self.click = self.e1.get()

    def Pass(self):
        if self.name:
            self.click = "pass"

    def register(self):
        while not self.name:
            self.root.update()
            self.root.update_idletasks()
        return self.name

    def receive_stone(self, stone_type):
        self.stone_type = stone_type
        if stone_type == StoneEnum.BLACK:
            self.color = "black"
        else:
            self.color = "white"

    def choose_move(self, boards):
        if not self.move_referee.valid_history(self.stone_type, boards):
            return "This history makes no sense!"
        else:
            board = boards[0]
            for x in range(len(board)):
                for y in range(len(board[0])):
                    if board[x][y].get_raw() == WHITE_STONE:
                        self.buttons["{}-{}".format(x + 1, y +
                                                    1)].configure(bg="white")
                    elif board[x][y].get_raw() == BLACK_STONE:
                        self.buttons["{}-{}".format(x + 1, y +
                                                    1)].configure(bg="black")
                    else:
                        self.buttons["{}-{}".format(
                            x + 1, y + 1)].configure(bg="goldenrod")

            while not self.click:
                self.root.update()
                self.root.update_idletasks()
            if self.click == "pass":
                self.click = None
                return PASS

            ret = str_to_point(self.click)
            #if not self.move_referee.valid_move(stone_type=self.stone_type, point=ret, boards=boards, current_board=board):
            #	raise Exception("Invalid point.")
            self.click = None
            return (ret.x, ret.y)
コード例 #23
0
ファイル: il_granino.py プロジェクト: Dragoncore1/tkinter-Dev
lblgst = Label(root, text="The GST Amount is", bg="#4ca6a6", fg="#FFFFFF")
lblgst.grid(row=6, column=0, padx=10, pady=10)

# Button To Calculate
btnTotal = Button(root,
                  text="Total",
                  borderless=1,
                  relief='sunken',
                  bordercolor='#000000',
                  pady=10,
                  padx=30,
                  bg='#4c79a6',
                  fg='#FFFFFF',
                  width=123,
                  command=calculate)
btnTotal.grid(row=3, column=1, padx=10, pady=10)

# Button To reset
btnReset = Button(root,
                  text="Reset",
                  borderless=1,
                  relief='sunken',
                  bordercolor='#000000',
                  pady=10,
                  padx=30,
                  bg='#4c79a6',
                  fg='#FFFFFF',
                  width=123,
                  command=reset)
btnReset.grid(row=7, column=0, padx=10, pady=10)
コード例 #24
0
ファイル: login.py プロジェクト: MingmingPeng/FunSmart
loginUsernameEntry = Entry(frame, width=20)
loginUsernameEntry.grid(row=1, column=1, pady=20)

#Password label and entry
loginPasswordLable = Label(frame, text="Password", font=(
    "Arial CE",
    14,
))
loginPasswordLable.grid(row=2, column=0, pady=10)

loginPasswordEntry = Entry(frame, width=20, show="*")
loginPasswordEntry.grid(row=2, column=1, pady=10)

#Login button
login = Button(frame, text="Login", bg="#82E0AA", command=checkLogin)
login.grid(row=4, column=0, pady=20)

#Global profile variable
var_name = StringVar()
FnameEntry = StringVar()
LnameEntry = StringVar()
usernameEntry = StringVar()
passwordEntry = StringVar()
confirmPasswordEntry = StringVar()
securityQuestion1Entry = StringVar()
securityQuestion2Entry = StringVar()

#signUp button
signUp = Button(frame, text="Sign Up", bg="#82E0AA", command=createProfile)
signUp.grid(row=4, column=1, pady=20)
コード例 #25
0
ファイル: login.py プロジェクト: pcireus/FunSmart
def createProfile():
    #Lets function know you are using the global defined values
    global createProfileWindow
    global proErrorInput

    #------------------------------------------------------------------------
    #   If user does not already have an account, then have user create a profile
    #       If profile already exist for the user, allow the user to reset his
    #       password
    #------------------------------------------------------------------------
    profileMaker = Methods.fileSplitter("profileMaker.txt")
    #Strip all the profile components from the profilemaker
    profTitle = profileMaker[0]
    profHeader = profileMaker[1]
    profFname = profileMaker[2]
    profLname = profileMaker[3]
    profUsername = profileMaker[4]
    profPassword = profileMaker[5]
    profConfirmPassword = profileMaker[6]
    profSecurityQuestionHeader = profileMaker[7]
    profSecurityQuestion1 = profileMaker[8]
    profSecurityQuestion2 = profileMaker[9]
    profSubmit = profileMaker[10]
    proErrorInput = profileMaker[11]

    createProfileWindow = Toplevel(root)
    createProfileWindow.title(profTitle)
    createProfileWindow.geometry("600x600")

    #Headers
    h1 = Label(createProfileWindow, text=profHeader)
    h1.grid(row=0, column=1)

    h2 = Label(createProfileWindow, text=profSecurityQuestionHeader)
    h2.grid(row=7, column=1)

    #Profile component label and entry
    Fname = Label(createProfileWindow, text=profFname)
    Fname.grid(row=2, column=0)
    Lname = Label(createProfileWindow, text=profLname).grid(row=3, column=0)
    username = Label(createProfileWindow, text=profUsername).grid(row=4,
                                                                  column=0)
    password = Label(createProfileWindow, text=profPassword).grid(row=5,
                                                                  column=0)
    confirmPassword = Label(createProfileWindow,
                            text=profConfirmPassword).grid(row=6, column=0)
    securityQuestion1 = Label(createProfileWindow,
                              text=profSecurityQuestion1).grid(row=8, column=0)
    securityQuestion2 = Label(createProfileWindow,
                              text=profSecurityQuestion2).grid(row=9, column=0)

    Entry(createProfileWindow, textvariable=FnameEntry,
          width=20).grid(row=2, column=1)
    Entry(createProfileWindow, textvariable=LnameEntry,
          width=20).grid(row=3, column=1)
    Entry(createProfileWindow, textvariable=usernameEntry,
          width=20).grid(row=4, column=1)
    Entry(createProfileWindow, textvariable=passwordEntry, width=20,
          show="*").grid(row=5, column=1)
    Entry(createProfileWindow,
          textvariable=confirmPasswordEntry,
          width=20,
          show="*").grid(row=6, column=1)
    Entry(createProfileWindow, textvariable=securityQuestion1Entry,
          width=20).grid(row=8, column=1)
    Entry(createProfileWindow, textvariable=securityQuestion2Entry,
          width=20).grid(row=9, column=1)

    btn = Button(createProfileWindow,
                 text=profSubmit,
                 background="lightgreen",
                 command=submitProfile)
    btn.grid(row=10, column=1)
コード例 #26
0
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)
        self.parent = parent

        # window set up
        window.resizable(False, False)
        window.title("Rock Paper Scissors by Adolfo López Herrera")

        # label header
        lbl = Label(window,
                    text="\nWelcome to Rock Paper Scissors!",
                    height=2,
                    font=("Helvetica Bold", 28))
        lbl.config(anchor=CENTER)
        lbl.pack(pady=10)

        # setting window size
        window.geometry('500x500')

        # initial output isn't set to anything
        self.output = tk.StringVar()
        self.output.set("??")

        # output label
        output_lbl = Label(window,
                           textvariable=self.output,
                           font=("Helvetica Bold", 100),
                           height=2)
        output_lbl.config(anchor=CENTER)
        output_lbl.pack()

        # buttons
        window.grid_columnconfigure(0, weight=1)
        window.grid_columnconfigure(4, weight=1)

        btn1 = Button(window,
                      text="✊",
                      bg="black",
                      width=100,
                      height=100,
                      borderless=1,
                      font=("Helvetica", 40),
                      command=self.Rock)
        btn1.grid(row=0, column=1)
        btn1.pack(padx=33.3333333333, pady=0, side=tk.LEFT)

        btn2 = Button(window,
                      text="✋",
                      bg="black",
                      width=100,
                      height=100,
                      borderless=1,
                      font=("Helvetica", 40),
                      command=self.Paper)
        btn2.grid(row=0, column=2)
        btn2.pack(padx=33.3333333333, pady=0, side=tk.LEFT)

        btn3 = Button(window,
                      text="✌️",
                      bg="black",
                      width=100,
                      height=100,
                      borderless=1,
                      font=("Helvetica", 40),
                      command=self.Scissor)
        btn3.grid(row=0, column=3)
        btn3.pack(padx=33.3333333333, pady=0, side=tk.LEFT)
コード例 #27
0
def nextQuestion(frame, SelectedBtn, i, j):
    global answered
    global Questionframe
    global ParsedQuestion
    global ParsedAnswer
    global questionIndex
    global button
    global NextFrame
    global stageNumber
    global totalQuestion
    global stageQuestionCount
    global timeLabel
    global seconds
    # global timeOut
    # check if the selected field is already played

    if answered == False and SelectedBtn["text"] == " ":
        answered = True

        # Display answer and retreive answer and check if the answer is correct
        Questionframe = Frame(frame, bg="white")
        Questionframe.pack(side="top", fill="x")

        Question = Label(Questionframe,
                         text="Stage: " + str(stageNumber) + " " +
                         ParsedQuestion[questionIndex])
        Question.grid(row=0, column=0)

        #multiple Choice list for user answers
        multChoices = [
            str(ParsedAnswer[questionIndex][0]),
            str(ParsedAnswer[questionIndex][1]),
            str(ParsedAnswer[questionIndex][2]),
            str(ParsedAnswer[questionIndex][3])
        ]
        # identify the correct answer from the list
        correctAns = ParsedAnswer[questionIndex][0]
        # Shuffle entire list
        random.shuffle(multChoices)
        questionIndex += 1
        stageQuestionCount += 1

        totalQuestion += 1
        multChoice1 = Button(
            Questionframe,
            text=multChoices[0],
            command=lambda: checkAns(Questionframe, SelectedBtn, correctAns,
                                     multChoices[0], i, j))
        multChoice2 = Button(
            Questionframe,
            text=multChoices[1],
            command=lambda: checkAns(Questionframe, SelectedBtn, correctAns,
                                     multChoices[1], i, j))
        multChoice3 = Button(
            Questionframe,
            text=multChoices[2],
            command=lambda: checkAns(Questionframe, SelectedBtn, correctAns,
                                     multChoices[2], i, j))
        multChoice4 = Button(
            Questionframe,
            text=multChoices[3],
            command=lambda: checkAns(Questionframe, SelectedBtn, correctAns,
                                     multChoices[3], i, j))

        multChoice1.grid(row=1, column=0, sticky=W)
        multChoice2.grid(row=1, column=1, sticky=W)
        multChoice3.grid(row=2, column=0, sticky=W)
        multChoice4.grid(row=2, column=1, sticky=W)

        # Call timer
        # seconds = 5
        timeOut = False
        # label displaying time
        timeLabel = Label(frame, text="30 s", font="Arial 30", width=10)
        timeLabel.pack()
        # start the timer
        timeLabel.after(1000, lambda: refresh_label(frame, SelectedBtn, i, j))
コード例 #28
0
ファイル: 我就健.py プロジェクト: e85658/PBC_final
def What2Eat(frame):
    frame.tkraise()  # 跳出新頁面
    ''' Step1. ======== 抓取資料 ======== '''
    global GenderInput
    global AgeInput
    global HeightInput
    global WeightInput
    global ActivityInput
    global TargetWeightInput
    global DaysInput

    # try:
    Gender = GenderInput.get()
    AgeStr = AgeInput.get()
    Age = int(AgeStr)
    HeightStr = HeightInput.get()
    Height = int(HeightStr)
    WeightStr = WeightInput.get()
    Weight = int(WeightStr)
    Activity = ActivityInput.get()
    TarWeightStr = TargetWeightInput.get()
    TarWeight = int(TarWeightStr)
    TarDaysStr = DaysInput.get()
    TarDays = int(TarDaysStr)
    ''' Step2. ======== 開始計算 ======== '''

    # ----- 計算BMI
    BMI = Weight / (Height / 100)**2

    # ----- 計算 女生的TDEE
    if Gender == "生理女":
        TDEE = 9.6 * Weight + 1.8 * Height - 4.7 * Age + 655
    else:  # 男生的 TDEE
        TDEE = 13.7 * Weight + 5.0 * Height - 6.8 * Age + 66

    # ----- 計算每日所需熱量 (CalNeeded)
    # 體重過輕
    if BMI < 18.5:
        if Activity == 1:
            CalNeeded = 35 * Weight
        elif Activity == 2:
            CalNeeded = 40 * Weight
        else:
            CalNeeded = 45 * Weight

    # 體重適中
    elif 18.5 < BMI < 24.9:
        if Activity == "低":
            CalNeeded = 30 * Weight
        elif Activity == "中":
            CalNeeded = 35 * Weight
        else:
            CalNeeded = 40 * Weight

    # 體重過重
    else:
        if Activity == 1:
            CalNeeded = 22.5 * Weight
        elif Activity == 2:
            CalNeeded = 30 * Weight
        else:
            CalNeeded = 35 * Weight

    # ------ 計算如果要減肥應該攝取的熱量
    if Weight == TarWeight and TarDays == 0:
        TarDays = 1
    Cal2Eat = CalNeeded - ((Weight - TarWeight) * 7700 / TarDays)
    if Cal2Eat <= TDEE:  # 如果比基礎代謝率還低
        CalNeeded = TDEE
    elif TDEE < Cal2Eat <= CalNeeded:
        CalNeeded = Cal2Eat

    # ------ 建議每日攝取營養素
    if CalNeeded <= 1200:
        WholeGrains = 1.5
        Protein = 3
        Diary = 1.5
        Vegetable = 3
        Fruit = 2
        Oil = 4
    elif 1200 < CalNeeded <= 1500:
        WholeGrains = 2.5
        Protein = 4
        Diary = 1.5
        Vegetable = 3
        Fruit = 2
        Oil = 4
    elif 1500 < CalNeeded <= 1800:
        WholeGrains = 3
        Protein = 5
        Diary = 1.5
        Vegetable = 3
        Fruit = 2
        Oil = 5
    elif 1800 < CalNeeded <= 2000:
        WholeGrains = 3
        Protein = 6
        Diary = 1.5
        Vegetable = 4
        Fruit = 3
        Oil = 6
    elif 2000 < CalNeeded <= 2200:
        WholeGrains = 3.5
        Protein = 6
        Diary = 1.5
        Vegetable = 4
        Fruit = 3.5
        Oil = 6
    elif 2200 < CalNeeded <= 2500:
        WholeGrains = 4
        Protein = 7
        Diary = 1.5
        Vegetable = 5
        Fruit = 4
        Oil = 7
    else:
        WholeGrains = 4
        Protein = 8
        Diary = 2
        Vegetable = 5
        Fruit = 4
        Oil = 8
    ''' Step3. ======== 秀出結果(及排列)在第二頁上 ======== '''
    BackButton = Button(frame,
                        text="←",
                        command=lambda: SwitchFrame(ThirdFrame, SecondFrame))
    BackButton.grid(column=0, row=0, sticky='WS')  # 回到上一頁的button

    HomeButton = Button(frame,
                        text="⌂",
                        command=lambda: SwitchFrame(ThirdFrame, FirstFrame))
    HomeButton.grid(column=1, row=0, sticky='WS')  # 回到首頁的button

    # ------ BMI 結果
    LabelBMI = Label(ThirdFrame, text='BMI =', fg='#f8872e', bg="#fbf1e9")
    LabelBMI.grid(column=0, row=3)

    LabelBMIResult = Label(ThirdFrame,
                           text=round(BMI, 1),
                           fg='#f8872e',
                           bg="#fbf1e9")
    LabelBMIResult.grid(column=1, row=3)

    # ------ 再加上過輕或過重的話
    if BMI < 18.5:
        LabelFatorThin = Label(ThirdFrame,
                               text='你現在過輕囉!',
                               bg="#fbf1e9",
                               fg="gray",
                               font=('Helvetica', 10))
        LabelFatorThin.grid(column=1, row=4)
    elif BMI > 24.9:
        LabelFatorThin = Label(ThirdFrame,
                               text='你現在過重囉!',
                               bg="#fbf1e9",
                               fg="gray",
                               font=('Helvetica', 10))
        LabelFatorThin.grid(column=1, row=4)
    else:
        LabelFatorThin = Label(ThirdFrame,
                               text='不錯呦~繼續保持!',
                               bg="#fbf1e9",
                               fg="gray",
                               font=('Helvetica', 10))
        LabelFatorThin.grid(column=1, row=4)

    # ------- 每日所需熱量 結果
    LabelCal = Label(ThirdFrame, text='你應攝取 =', fg='#f8872e', bg="#fbf1e9")
    LabelCal.grid(column=0, row=5)

    LabelCalResult = Label(ThirdFrame,
                           text=str(round(CalNeeded, 1)) + ' 大卡',
                           fg='#f8872e',
                           bg="#fbf1e9")
    LabelCalResult.grid(column=1, row=5)

    LabelOpening2 = Label(ThirdFrame,
                          text='這樣吃最健!',
                          font=('Helvetica', 25),
                          fg='#f8872e',
                          bg="#fbf1e9")
    LabelOpening2.grid(column=0, row=6, columnspan=2, pady=20)

    # ------- 建議每日攝取營養素 結果
    LabelWholeGrains = Label(ThirdFrame,
                             text='全榖雜糧類=',
                             fg='#f8872e',
                             bg="#fbf1e9")
    LabelWholeGrains.grid(column=0, row=8)

    LabelWholeGrainsResult = Label(ThirdFrame,
                                   text=str(WholeGrains) + ' 碗',
                                   fg='#f8872e',
                                   bg="#fbf1e9")
    LabelWholeGrainsResult.grid(column=1, row=8)

    LabelProtein = Label(ThirdFrame, text='蛋豆魚肉類=', fg='#f8872e', bg="#fbf1e9")
    LabelProtein.grid(column=0, row=9)

    LabelProteinResult = Label(ThirdFrame,
                               text=str(Protein) + ' 份',
                               fg='#f8872e',
                               bg="#fbf1e9")
    LabelProteinResult.grid(column=1, row=9)

    LabelDiary = Label(ThirdFrame, text='乳品類=', fg='#f8872e', bg="#fbf1e9")
    LabelDiary.grid(column=0, row=10)

    LabelDiaryResult = Label(ThirdFrame,
                             text=str(Diary) + ' 杯',
                             fg='#f8872e',
                             bg="#fbf1e9")
    LabelDiaryResult.grid(column=1, row=10)

    LabelVegetable = Label(ThirdFrame, text='蔬菜類=', fg='#f8872e', bg="#fbf1e9")
    LabelVegetable.grid(column=0, row=11)

    LabelVegetableResult = Label(ThirdFrame,
                                 text=str(Vegetable) + ' 份',
                                 fg='#f8872e',
                                 bg="#fbf1e9")
    LabelVegetableResult.grid(column=1, row=11)

    LabelFruit = Label(ThirdFrame, text='水果類=', fg='#f8872e', bg="#fbf1e9")
    LabelFruit.grid(column=0, row=12)

    LabelFruitResult = Label(ThirdFrame,
                             text=str(Fruit) + ' 份',
                             fg='#f8872e',
                             bg="#fbf1e9")
    LabelFruitResult.grid(column=1, row=12)

    LabelOil = Label(ThirdFrame, text='油脂與堅果種子類=', fg='#f8872e', bg="#fbf1e9")
    LabelOil.grid(column=0, row=13)

    LabelOilResult = Label(ThirdFrame,
                           text=str(Oil) + ' 份',
                           fg='#f8872e',
                           bg="#fbf1e9")
    LabelOilResult.grid(column=1, row=13)

    # 加入分隔線
    ttk.Separator(ThirdFrame, orient=HORIZONTAL).grid(row=14,
                                                      columnspan=2,
                                                      sticky="ew",
                                                      padx=30,
                                                      pady=30)

    # -------- 建議每日攝取營養素 定義
    LabelNulDef = Label(ThirdFrame,
                        text='*六大營養素代換份量*',
                        fg='#f8872e',
                        bg="#fbf1e9")
    LabelNulDef.grid(column=0, row=15, columnspan=2, sticky=N + S)

    LabelWholeGrainsDef = Label(ThirdFrame,
                                text='全榖雜糧類 1 碗:約 160-200 公克',
                                fg='#f8872e',
                                bg="#fbf1e9")
    LabelWholeGrainsDef.grid(column=0, row=16, columnspan=2, sticky=N + S)

    LabelProteinDef = Label(ThirdFrame,
                            text='蛋豆魚肉類 1 份:約 37.5 公克',
                            fg='#f8872e',
                            bg="#fbf1e9")
    LabelProteinDef.grid(column=0, row=17, columnspan=2, sticky=N + S)

    LabelDiaryDef = Label(ThirdFrame,
                          text='乳品類 1 杯:約 240 毫升',
                          fg='#f8872e',
                          bg="#fbf1e9")
    LabelDiaryDef.grid(column=0, row=18, columnspan=2, sticky=N + S)

    LabelVegetableDef = Label(ThirdFrame,
                              text='蔬菜類 1 份:約 100 公克',
                              fg='#f8872e',
                              bg="#fbf1e9")
    LabelVegetableDef.grid(column=0, row=19, columnspan=2, sticky=N + S)

    LabelFruitDef = Label(ThirdFrame,
                          text='水果類 1 份:約 80-120 公克',
                          fg='#f8872e',
                          bg="#fbf1e9")
    LabelFruitDef.grid(column=0, row=20, columnspan=2, sticky=N + S)

    LabelFruitDef = Label(ThirdFrame,
                          text='油脂與堅果種子類 1 份:約 5 公克',
                          fg='#f8872e',
                          bg="#fbf1e9")
    LabelFruitDef.grid(column=0, row=21, columnspan=2, sticky=N + S)
コード例 #29
0
l_hhStart.grid(row=3, column=1)
l_mmStart.grid(row=3, column=2)
l_EndFast.grid(row=6, column=0)
l_hhEnd.grid(row=5, column=1)
l_mmEnd.grid(row=5, column=2)
l_StatusScheduler.grid(row=7, column=0)

#Placing Entry Widgets
e_AmpereGet.grid(row=1, column=1, pady=5)
e_ChargeSpeed.grid(row=2, column=1, pady=5)
e_ChargedEnergy.grid(row=3, column=1, pady=5)
e_LastOnline.grid(row=4, column=1, pady=5)
e_CarStatus.grid(row=5, column=1, pady=5)
e_AmpereSet.grid(row=1, column=1, pady=5)
t_ResponseSetAmpere.grid(row=2, column=1, pady=5)
e_AmpereFastScheduler.grid(row=1, column=1, pady=5)
e_AmpereSlowScheduler.grid(row=2, column=1, pady=5)
e_hhStart.grid(row=4, column=1, pady=5, padx =5)
e_mmStart.grid(row=4, column=2, pady=5)
e_hhEnd.grid(row=6, column=1, pady=5, padx=5)
e_mmEnd.grid(row=6, column=2, pady=5)
e_StatusScheduler.grid(row=7, column=1)

#Placing Buttons
b_GetStatus.grid(row=8, column=0, columnspan=2, pady=15)
b_SetAmpere.grid(row=3, column=0, columnspan=2, pady=15)
b_SetScheduler.grid(row=8, column=0, pady=15)
b_AbortScheduler.grid(row=8, column=2, pady=15)

#Running Program
root.mainloop()
コード例 #30
0
    def __init__(self):
        self.root = Tk()
        self.root.resizable(0, 0)
        self.teste = {}
        self.funcionando = False
        self.contador = 0
        self.nome_arquivo = None  # incializa como None mas é alterada de acordo com o nome escolhido para o arquivo
        self.intervalo_tempo = None  # incializa como None mas é alterada de acordo com o intervalo escolhido
        self.current_directory = None

        # PRIMEIRA PARTE - INFORMAÇÕES INICIAIS
        app = tk.LabelFrame(self.root, text="Recadinho", borderwidth=4)
        app.grid()
        my_label_nome = tk.Label(
            app, text="Oi, gracinha! Digite o nome do seu print")
        my_label_nome.grid()
        my_label_tempo = tk.Label(
            app, text='Depois escolha o intervalo de tempo (:')
        my_label_tempo.grid()

        # SEGUNDA PARTE - ESCOLHA NOME ARQUIVO E INTERVALO DE TEMPO ENTRE OS PRINTS
        app2 = tk.LabelFrame(self.root,
                             text="Opções",
                             width=250,
                             height=80,
                             borderwidth=4)
        app2.grid()

        # NOME PASTA
        nome_print = tk.Label(app2, text='Nome do Print:')
        nome_print.grid()
        self.pasta = tk.Entry(app2, width=50)
        self.pasta.bind('<Return>', self.arquivo)
        self.pasta.grid(row=10, column=0)
        self.mostrar_nome = tk.Label(app2, text='')
        self.mostrar_nome.grid()

        # ESCOLHA TEMPO

        intervalo = tk.Label(app2, text='Intervalo:', justify='left')
        intervalo.grid()
        self.tempo = tk.Entry(app2, width=50)
        self.tempo.bind('<Return>', self.intervalo)
        self.tempo.grid(row=20, column=0)
        self.mostrar_tempo = tk.Label(app2, text='')
        self.mostrar_tempo.grid()

        escolher_pasta = Button(app2,
                                text='Escolher pasta',
                                bg='blue',
                                fg='white',
                                command=self.submit,
                                borderwidth=3)

        escolher_pasta.grid(row=25, column=0)

        # TERCEIRA PARTE - EXECUÇÃO DOS PRINTS (INICIAR E INTERROMPER)

        app3 = tk.LabelFrame(self.root, text='Execução', height=200, width=200)

        botao_start = self.criar_botao(app3, "Iniciar!", '#24D34E', 'white',
                                       self.start)
        botao_interromper = self.criar_botao(app3, "Interromper", '#FF0A0A',
                                             'white', self.stop)

        botao_start.grid(row=35, column=0)
        botao_interromper.grid(row=40, column=0)
        app3.grid()
        app4 = tk.LabelFrame(self.root, text="Status da Execução")
        self.status = tk.Label(app4, text="Inativo")
        self.status.grid()
        self.status_salvar = tk.Label(app4, text='')
        self.status_salvar.grid()
        app4.grid()

        # QUARTA PARTE - APAGAR VARIÁVEIS

        app5 = tk.LabelFrame(self.root, text='Apagar nome e tempo')
        botao_apagar = Button(
            app5,
            text='Zerar',
            command=self.apagar,
            bg='blue',
            fg='white',
        )
        botao_apagar.grid()
        self.mostrar_apagar = tk.Label(app5, text='')
        self.mostrar_apagar.grid()
        app5.grid()
        self.root.mainloop()