Пример #1
0
    def createButtonFrame(self):
        btnFrame = Frame(self.parentFrame, height=30, bg=self.bgColor)
        btnFrame.pack_propagate(0)
        btnFrame.pack(side=TOP, fill=X)
        # 利用frame做出button的黑色边框
        # f1 = Frame(btnFrame, highlightbackground="black", highlightthickness=1, bd=0)
        # f1.pack(side=LEFT)

        self.runBtn = Button(btnFrame, text="策略运行", relief=FLAT, padx=14, pady=1.5, bg=self.rColor,
                             bd=0, highlightthickness=1, command=self.toMonFrame)
        self.logBtn = Button(btnFrame, text="运行日志", relief=FLAT, padx=14, pady=1.5, bg=self.lColor,
                             bd=0, highlightthickness=1,
                             command=self.toLogFrame)
        self.sigBtn = Button(btnFrame, text="信号记录", relief=FLAT, padx=14, pady=1.5, bg=self.sColor,
                             bd=0, highlightthickness=1,  command=self.toSigFrame)
        self.errBtn = Button(btnFrame, text="错误信息", relief=FLAT, padx=14, pady=1.5, bg=self.eColor,
                             bd=0, highlightthickness=1, command=self.toErrFrame)
        self.runBtn.pack(side=LEFT, expand=NO)
        self.logBtn.pack(side=LEFT, expand=NO)
        self.sigBtn.pack(side=LEFT, expand=NO)
        self.errBtn.pack(side=LEFT, expand=NO)

        for btn in (self.runBtn, self.logBtn, self.sigBtn, self.errBtn):
            btn.bind("<Enter>", self.handlerAdaptor(self.onEnter, button=btn))
            btn.bind("<Leave>", self.handlerAdaptor(self.onLeave, button=btn))
Пример #2
0
    def init_details(self, window):
        # Create details button
        def details():
            if helper_frame.hidden:
                helper_frame.grid()
                helper_frame.hidden = False
                self.run_button.grid(row=17)
            else:
                helper_frame.grid_remove()
                helper_frame.hidden = True
                self.run_button.grid(row=16)

        details_button = Button(window, text="Details", command=details)
        details_button.grid(row=15, column=0, sticky="W", padx=PAD_X)

        # Details Menu
        helper_frame = Frame(window, width=window.winfo_width() - PAD_X * 2, height=100)
        helper_frame.pack_propagate(False)
        self.details_text = Text(helper_frame, width=0, height=0)
        details_scroll = Scrollbar(helper_frame, command=self.details_text.yview)
        details_scroll.pack(side=RIGHT, fill="y")
        self.details_text.configure(yscrollcommand=details_scroll.set)
        self.details_text.pack(fill="both", expand=True)
        helper_frame.grid(row=16, column=0, padx=PAD_X, pady=10)
        helper_frame.grid_remove()
        helper_frame.hidden = True
Пример #3
0
class QuantHelper(QuantFrame):
    def __init__(self, frame, control, language):
        self.control = control
        self.language = language
        self.root_frame = Frame(frame,
                                height=frame['height'],
                                width=frame['width'])
        self.root_frame.pack_propagate(0)
        self.root_frame.pack()

        self.root_tree = None

        self.api_dict = _all_func_

    def create_list(self):
        right_bar = ttk.Scrollbar(self.root_frame, orient="vertical")
        right_bar.pack(side=RIGHT, fill=Y)

        self.root_tree = ttk.Treeview(self.root_frame,
                                      show='tree',
                                      style="Filter.Treeview",
                                      columns=['name'],
                                      yscrollcommand=right_bar.set)
        #默认列表示函数名
        self.root_tree.column('0', anchor='w', stretch=True)
        #函数说明
        self.root_tree.column('name', anchor='w', stretch=True)
        self.insert_api()
        right_bar.config(command=self.root_tree.yview)
        self.root_tree.pack(fill=BOTH, expand=YES)
        self.root_frame.pack(fill=BOTH, expand=YES)

        #绑定事件
        self.root_tree.bind("<ButtonRelease-1>", self.item_click)

    def insert_api(self):
        for key, value in self.api_dict.items():
            root = self.root_tree.insert("", "end", open=False, text=key)
            for func in value:
                self.root_tree.insert(root,
                                      'end',
                                      text=func[0],
                                      values=(func[1]))

    def item_click(self, event):
        select = event.widget.selection()
        for idx in select:
            text = self.root_tree.item(idx)['text']

            if text in self.api_dict:
                self.control.set_help_text(text, '')

            func = globals()['BaseApi'].__dict__.get(text, None)
            if not func: continue
            #检查注释
            if func.__doc__:
                funcText = (func.__doc__).lstrip("\n")  # 去掉前面空行
                self.control.set_help_text(text, funcText)
            else:
                self.control.set_help_text(text, 'None')
Пример #4
0
class QuantHelperText(object):
    def __init__(self, frame, control, language):
        self.control = control
        self.language = language
        self.parent_frame = frame
        self.root_frame = Frame(frame, bg=rgb_to_hex(245, 245, 245), height=30)
        self.help_label = Label(self.root_frame,
                                text="函数说明",
                                bg=rgb_to_hex(245, 245, 245))
        self.help_label.pack(side=LEFT)
        self.root_frame.pack_propagate(0)
        self.root_frame.pack(fill=X)

        self.help_text = None

    def create_text(self):
        self.help_text = HelpText(self.parent_frame, bd=0)
        self.help_text.createScrollbar()
        self.help_text.pack(fill=BOTH, expand=YES)

    def insert_text(self, funcName, text):
        #更新函数说明
        self.help_label.config(text=funcName)
        #更新帮助说明
        if text:
            content = text.replace("    ", "")

            self.help_text.setText(content)
Пример #5
0
class LabelSpin(Frame):
    def __init__(self,
                 parent,
                 width=200,
                 height=50,
                 text='spinbox',
                 val=(0, 100),
                 inc=1,
                 font=('Times', 12),
                 ratio=0.5):
        Frame.__init__(self, parent, width=width, height=height)
        self.pack_propagate(0)

        self.f1 = Frame(self, width=int(width * ratio), height=height)
        self.f1.pack_propagate(0)
        self.f1.pack(side='left')

        self.f2 = Frame(self, width=int(width * (1 - ratio)), height=height)
        self.f2.pack_propagate(0)
        self.f2.pack(side='left')

        self.lb = Label(self.f1, text=text, font=font)
        self.lb.pack(fill='both', expand=True)

        self.sp = Spinbox(self.f2,
                          font=font,
                          from_=val[0],
                          to=val[1],
                          increment=inc)
        self.sp.pack(fill='both', expand=True)

    def get(self):
        return self.sp.get()
Пример #6
0
class UiHandler(object):
    def __init__(self, root):
        self.__root = root
        self.__frame = Frame(self.__root)
        self.__frame.pack_propagate(0)
        self.__dots = [[None for x in range(7)] for x in range(6)]

    @property
    def root(self):
        return self.__root

    @property
    def frame(self):
        return self.__frame

    @property
    def dots(self):
        return self.__dots

    def openUi(self):
        self.root.title("Connect Four")
        self.frame.grid(row=6, column=7)

        for x in range(6):
            for y in range(7):
                self.dots[x][y] = Button(self.frame, text=str(0))
                self.dots[x][y].grid(column=x,
                                     row=y,
                                     command=self.setColor("red", x, y))

    def setColor(self, color, x, y):
        self.dots[x][y].config(bg=color)
Пример #7
0
class App:

    WIDTH = 600
    HEIGHT = 800

    def __init__(self, root, funcs):
        self.root = root
        self.root.title("Plotki Migotki")
        self.root.geometry("%dx%d%+d%+d" % (App.WIDTH, App.HEIGHT, 0, 0))
        self.main_frame = Frame(root, width=App.WIDTH, height=App.HEIGHT)
        self.main_frame.pack_propagate(0)
        self.main_frame.pack()
        self.list_map = funcs
        self.listbox = Listbox(self.main_frame, height=4, width=15, selectbackground="orange")
        for ix, (entry, _f) in enumerate(self.list_map):
            plot_type, title = entry
            self.listbox.insert(ix, title)
            if plot_type == BARCHART:
                self.listbox.itemconfig(ix, bg='green')
            elif plot_type == BOXPLOT:
                self.listbox.itemconfig(ix, bg='yellow')
            elif plot_type == SCATTERPLOT:
                self.listbox.itemconfig(ix, bg='grey')
            elif plot_type == HISTOGRAM:
                self.listbox.itemconfig(ix, bg='magenta')
        self.listbox.bind("<Double-Button-1>", self.call_back)
        self.listbox.bind("<Return>", self.call_back)
        self.listbox.pack(expand=1, fill=tk.BOTH)

    def call_back(self, event):
        zones = self.listbox.curselection()
        assert len(zones) == 1
        ix = zones[0]
        ix, cb = self.list_map[ix]
        cb()
Пример #8
0
class LabelEntry(Frame):
    def __init__(self,
                 parent,
                 width=400,
                 height=50,
                 text='Entry',
                 font=('Times', 12),
                 ratio=0.5):
        Frame.__init__(self, parent, width=width, height=height)
        self.pack_propagate(0)

        self.f1 = Frame(self, width=int(width * ratio), height=height)
        self.f1.pack_propagate(0)
        self.f1.pack(side='left')

        self.f2 = Frame(self, width=int(width * (1 - ratio)), height=height)
        self.f2.pack_propagate(0)
        self.f2.pack(side='left')

        self.lb = Label(self.f1, text=text, font=font)
        self.lb.pack(fill='both', expand=True)

        self.et = Entry(self.f2, font=font)
        self.et.pack(fill='both', expand=True)

    def get(self):
        return self.et.get()
Пример #9
0
    def __init__(self, master, settings):
        self.queue = queue
        # Set up the GUI
        Frame.__init__(self, master=None)
        self.master.title("Single execution result")
        self.file = settings['file']
        #
        center = Frame(master, padx=0, pady=0, width=300, height=300)
        btm_frame = Frame(master, pady=0, width=450, height=40)
        center.pack(fill=BOTH, expand=True)
        btm_frame.pack(side=BOTTOM, padx=0, pady=0)

        center.pack_propagate(False)
        btm_frame.pack_propagate(False)

        self.tree = self.create_table(center)
        self.tree.pack(fill=BOTH, expand=True)

        buttons = Frame(btm_frame, padx=0, pady=0)
        buttons.pack(side=BOTTOM, padx=0, pady=0)
        open_explorer = tkinter.Button(buttons,
                                       text='Open externally',
                                       command=self.open_explorer)
        open_explorer.grid(row=0, column=0, padx=0, pady=0)
        go_home = tkinter.Button(buttons,
                                 text='New execution',
                                 command=self.go_home)
        go_home.grid(row=0, column=1, padx=0, pady=0)
Пример #10
0
 def make_label(x, y, text,):
     f = Frame(canvas, height=CELL_SIZE, width=CELL_SIZE)
     f.pack_propagate(0)
     f.place(x=x, y=y)
     label = Label(f, font=("Helvetica", 14), text=text)
     label.pack(fill=tkinter.BOTH, expand=1)
     return label
Пример #11
0
 def getFrame(self, y0, y1, x0, x1):
     frame = Frame(self.root,
                   height=(y1 - y0) * self.size - self.size / 100,
                   width=(x1 - x0) * self.size - self.size / 100)
     frame.pack_propagate(0)
     frame.place(x=x0 * self.size, y=y0 * self.size)
     return frame
Пример #12
0
    def start(self):
        # Instantiate GUI
        self.top = Tk()
        top = self.top
        top.withdraw()

        top.attributes('-topmost', True)

        # Create main display window
        self._create_window()

        f = Frame(top)
        f.pack_propagate(0)  # don't shrink
        f.pack(padx=10, pady=10, fill="both", expand=True)

        Label(f, text="Choose the application type!").pack()
        Button(f, text='Server', command=self.server_mode, padx=50) \
                .pack(side=LEFT, padx=20, pady=5)
        Button(f, text='Client', command=self.client_mode, padx=50) \
                .pack(side=RIGHT, padx=20, pady=5)

        # Create ICONS
        self._create_icons()

        # Start the window before all windows

        top.update()
        top.deiconify()
        top.after_idle(top.attributes, '-topmost', False)
        # Runs in a loop
        top.mainloop()
Пример #13
0
    def create_editor(self):
        editor_frame = Frame(self.parent_pane,
                             bg=rgb_to_hex(255, 255, 255),
                             width=self.parent_pane['width'])
        editor_frame.pack_propagate(0)

        editor_head = Frame(editor_frame,
                            bg=rgb_to_hex(255, 255, 255),
                            height=40)
        editor_head.pack_propagate(0)
        self.insertEditorHead(editor_head)
        editor_head.pack(fill=X)

        editor_pane = PanedWindow(editor_frame,
                                  opaqueresize=True,
                                  orient=VERTICAL,
                                  sashrelief=GROOVE,
                                  sashwidth=4)
        editor_pane.pack_propagate(0)
        editor_pane.pack(fill=BOTH, expand=YES)

        self.editor_text_frame = Frame(editor_pane,
                                       background=rgb_to_hex(255, 255, 255))  #
        self.editor_text_frame.pack_propagate(0)
        editor_pane.add(self.editor_text_frame)

        self.insert_editor_text("")
        self.parent_pane.add(editor_frame, stretch='always')
Пример #14
0
class LabelMenu(Frame):
    def __init__(self, parent, width=400, height=50,
                 text="Menu", val={"item#1":1, "item#2":2},
                 font=('Times', 12), ratio=0.5):
        Frame.__init__(self, parent, width=width, height=height)
        self.pack_propagate(0)

        self.f1 = Frame(self, width=int(width*ratio), height=height)
        self.f1.pack_propagate(0)
        self.f1.pack(side='left')

        self.f2 = Frame(self, width=int(width*(1-ratio)), height=height)
        self.f2.pack_propagate(0)
        self.f2.pack(side='left')

        self.lb = Label(self.f1, text=text, font=font)
        self.lb.pack(fill='both',  expand=True)

        self.dic = {str(i):val[i] for i in val}
        self.opt = [i for i in self.dic]
        self.var = StringVar(self)
        self.var.set(self.opt[0])

        print(self.opt)
        self.mn = OptionMenu(self.f2, self.var, *self.opt)
        self.mn.pack(fill='both',  expand=True)

    def get(self):
        return self.dic[self.var.get()]
Пример #15
0
 def initialize_board(self):
     self.root = Tk()
     self.customFont = font.Font(root=self.root, size=20)
     self.grid = []
     for i in range(self.board.board_size):
         self.grid.append([])
         for j in range(self.board.board_size):
             value = self.board.tiles[i][j].value
             w = Frame(self.root,
                       width=100,
                       height=100,
                       borderwidth=2,
                       relief="solid")
             w.pack_propagate(0)
             label = Label(w,
                           text=str(value),
                           font=self.customFont,
                           background=self.get_background(value))
             label.place(anchor='center', relx=50, rely=50)
             label.pack(expand=True, fill='both')
             w.grid(column=j, row=i)
             self.grid[i].append(label)
     self.score_label = Label(self.root,
                              text="score: 0",
                              font=self.customFont)
     self.score_label.pack()
     self.score_label.grid(column=self.board.board_size,
                           row=self.board.board_size)
     self.root.bind("<Left>", self.leftPressed)
     self.root.bind("<Right>", self.rightPressed)
     self.root.bind("<Up>", self.upPressed)
     self.root.bind("<Down>", self.downPressed)
 def show_keys(self, target_frame):
     if len(self.settings.keys):
         target_frame.config(background='BLACK')
         Label(target_frame, text='№', width=3).grid(row=0, column=0)
         Label(target_frame, text='API key', width=30).grid(row=0,
                                                            column=1)
         Label(target_frame, text="Compression count",
               width=15).grid(row=0, column=2)
         Label(target_frame, text="Action", width=11).grid(row=0,
                                                           column=3)
         i = 1
         for key in self.settings.keys:
             target_frame.rowconfigure(i, pad=1)
             Label(target_frame, text=i, width=3,
                   height=2).grid(row=i, column=0)
             Label(target_frame, text=key, width=30,
                   height=2).grid(row=i, column=1)
             Label(target_frame,
                   text=self.settings.keys[key],
                   width=15,
                   height=2).grid(row=i, column=2)
             button_frame = Frame(target_frame, width=83, height=36)
             button_frame.pack_propagate(0)
             button_frame.grid(row=i, column=3)
             Button(button_frame,
                    text='Edit',
                    background='#888',
                    foreground='#000',
                    width=4,
                    height=1,
                    bd=1,
                    command=lambda arg=key: self.edit_key(
                        arg, target_frame)).pack(pady=5, side='left')
             Button(button_frame,
                    text='Delete',
                    background='#888',
                    foreground='#000',
                    width=6,
                    height=1,
                    bd=1,
                    command=lambda arg=key: self.delete_key(
                        arg, target_frame)).pack(pady=5, side='left')
             i += 1
     else:
         target_frame.config(background='')
         Label(target_frame,
               text='Please add your TinyPNG API key',
               font='arial 15').pack(fill='x', padx=70, pady=4)
         Button(target_frame,
                text='Get API key',
                background='#888',
                foreground='#000',
                padx='2',
                pady='0',
                width='10',
                font='arial 15',
                command=lambda: webbrowser.open_new_tab(
                    'https://tinypng.com/developers')).pack()
Пример #17
0
    def __init__(self, *args, **kwargs):
        BasePage.__init__(self, *args, **kwargs)

        main_frame = Frame(self, padx=5, pady=15)
        main_frame.pack(side="top", fill="both", expand=True)

        input_frame = Frame(main_frame, padx=15)
        input_frame.pack(side="left", fill="both", expand=True)

        self.course_var = StringVar(main_frame)
        self.professor_var = StringVar(main_frame)
        self.classroom_var = StringVar(main_frame)
        self.restriction_var = StringVar(main_frame)

        for s, v in [("Courses", self.course_var),
                     ("Professors", self.professor_var),
                     ("Classrooms", self.classroom_var),
                     ("Restrictions", self.restriction_var)]:
            f, _, _ = BasePage.get_labeled_input_field(input_frame,
                                                       "%s File" % s,
                                                       "Entry",
                                                       l_side="left",
                                                       i_side="left",
                                                       f_pady=8,
                                                       i_padx=15,
                                                       width=50,
                                                       textvariable=v,
                                                       required=True)

            i = PhotoImage(
                Image.open("./resources/folder.png").resize((30, 30),
                                                            Image.ANTIALIAS))
            btn = Button(f, image=i, command=partial(self.select_file, v))
            btn.image = i
            btn.pack(side="left")

        generation_frame = Frame(main_frame)
        generation_frame.pack_propagate(0)
        generation_frame.config(height=100, width=200)
        generation_frame.pack(side="left", fill="both", expand=True)

        Button(generation_frame,
               text="Generate a random schedule!",
               command=self.do_generation).pack(side="top", expand=True)

        self.status_message_var = StringVar(generation_frame)
        self.status_message_label = Label(generation_frame,
                                          textvariable=self.status_message_var,
                                          wraplength=200)
        self.status_message_label.pack(side="top", fill="both", expand=True)
        self.clear_status_message()

        self.gen_urls = None
        self.gen_mutex = Lock()
        self.keep_gen_thread_alive = True
        self.gen_thread = Thread(target=self._do_generation_requests)
        self.gen_thread.start()
Пример #18
0
def main():
    tk = Tk()
    tk.title('SFA-Cast')

    # Taskbar / Menu
    menu = Menu(tk)
    tk.config(menu=menu)
    # File > Exit
    file = Menu(menu)  # File - Exit
    file.add_command(label="Exit", command=tk.destroy)
    menu.add_cascade(label="File", menu=file)
    # Edit > Change Screenshot Location > Desktop / Documents / Pictures
    edit = Menu(menu)  # Change Screenshot path location
    edit.add_command(label="Desktop",
                     command=lambda *args: makepath("~/Desktop"))
    edit.add_command(label="Documents",
                     command=lambda *args: makepath("~/Documents"))
    edit.add_command(label="Pictures",
                     command=lambda *args: makepath("~/Pictures"))
    menu.add_cascade(label="Change Screenshot Location", menu=edit)
    # Help > Info / Screenshot Help
    helper = Menu(menu)  # Helper txt file open
    helper.add_command(label="Info", command=readme)
    helper.add_command(label="Screenshot Help", command=readme2)
    menu.add_cascade(label="Help", menu=helper)

    # Label Logo
    # Label = Label(tk, text = 'SFA-Cast', font =('Arial Black',40),
    # bg = 'purple4', fg = 'white')
    # Label.pack(pady=10,padx=10)

    # Logo added
    frame = Frame(tk, width=600, height=400, background='white')
    frame.pack_propagate(0)
    frame.pack()
    # Logo that we created
    img = PhotoImage(file='sfacast.png')
    pic = Label(frame, image=img)
    pic.pack()

    # Buttons
    # Run Button
    runButton = Button(tk, text='START', width=20, font=('Arial', 26),
                       fg='purple4', command=start_cast)  # Start button
    runButton.pack()
    # Screenshot Library Button
    picButton = Button(tk, text='SCREENSHOT LIBRARY', font=('Arial', 26),
                       width=20, fg='purple4', command=opendir)
    # Take screenshots button
    picButton.pack()
    # Exit Button
    exitButton = Button(tk, text='EXIT', width=20, font=('Arial', 26),
                        fg='purple4', command=quit)  # Exit button
    exitButton.pack()

    tk.mainloop()
    mainloop()
Пример #19
0
class QuantEditorHead(object):
    def __init__(self, frame, control, language):
        self.control = control
        self.language = language
        
        self.head_frame = Frame(frame, bg=rgb_to_hex(245, 245, 245), height=30)
        Label(self.head_frame, bg=rgb_to_hex(245, 245, 245), text=self.language.get_text(1)).pack(side=LEFT)
        self.head_frame.pack_propagate(0)
        self.head_frame.pack(fill=X)
Пример #20
0
    def body(self):
        info_frame = Frame(self,
                           width=self.frame_width,
                           height=self.frame_height)
        info_frame.pack_propagate(False)
        Label(info_frame, text="Generation done!",
              anchor=W).pack(side=LEFT, anchor=CENTER)
        info_frame.pack(side=TOP)

        self._body_pack_checker = True
Пример #21
0
 def make_button(self, func, text, x, y, image=None):
     cur_frame = Frame(self.main_frame,
                       width=70, height=32)
     cur_frame.grid(row=y, column=x)
     cur_frame.pack_propagate(False)
     if image is None:
         Button(cur_frame, text=text, width=70, command=func).pack()
     else:
         Button(cur_frame, image=image, command=func).pack()
     return cur_frame
Пример #22
0
    def __init__(self, master, queue, endCommand, settings):
        self.queue = queue
        # Set up the GUI
        Frame.__init__(self, master=None)
        self.master.title("Optimizer execution")
        self.file = settings['file']
        self.image_path = os.path.join('outputs',
                                       os.path.splitext(self.file)[0] + '.png')
        self.max_eval = settings['max_eval']
        self.metric = settings['sim_metric']
        #
        center = Frame(master, padx=0, pady=0, width=760, height=300)
        btm_frame = Frame(master, pady=0, width=450, height=40)
        center.pack(fill=BOTH, expand=True)
        btm_frame.pack(side=BOTTOM, padx=0, pady=0)

        center.grid_propagate(False)
        btm_frame.pack_propagate(False)
        # create empty figure and draw
        self.canvas = Canvas(center, width=450, height=300)
        self.canvas.grid(row=0, column=0, sticky='W')
        # create figure and load
        self.create_figure()
        image = Image.open(self.image_path)
        image = image.resize((450, 300), Image.ANTIALIAS)
        self.img = ImageTk.PhotoImage(image)
        self.image_on_canvas = self.canvas.create_image(0,
                                                        0,
                                                        anchor='nw',
                                                        image=self.img)
        self.canvas.update()

        table_frame = Frame(center, padx=0, pady=0, width=310, height=300)
        table_frame.grid(row=0, column=1, sticky='W')

        self.tree = self.create_table(table_frame)
        self.tree.pack(side=TOP, padx=0, pady=0)

        buttons = Frame(table_frame, padx=0, pady=0)
        buttons.pack(side=BOTTOM, padx=0, pady=0)
        open_explorer = tkinter.Button(buttons,
                                       text='Open externally',
                                       command=self.open_explorer)
        open_explorer.grid(row=0, column=0, padx=0, pady=0)
        go_home = tkinter.Button(buttons,
                                 text='New execution',
                                 command=self.go_home)
        go_home.grid(row=0, column=1, padx=0, pady=0)

        self.progress = ttk.Progressbar(btm_frame,
                                        orient=HORIZONTAL,
                                        length=760,
                                        mode='determinate')
        self.progress.pack(side=BOTTOM, padx=0, pady=0)
        self.update_bar()
Пример #23
0
    def __init__(self, platform, gradient, *args, **kwargs):
        self.gradient = gradient
        self.step_size = 3
        self.gradient_type = ['linear', 'radial', 'square']
        self.current_fill = 0
        self.grads = []
        self.platform = platform
        if self.platform == 'Pythonista':
            ui.View.__init__(self, *args, **kwargs)
            self.next_button = ui.Button(frame= \
                (330, 360, 30, 60), title = 'Next')
            self.next_button.background_color = (0.4, 0.4, 0.4)
            self.next_button.action = self.next_fill
            self.next_button.height = 30
            self.next_button.width = 60
            self.next_button.tint_color = 'white'
            self.next_button.font = ('<system>', 12)
            self.add_subview(self.next_button)

        elif self.platform == 'Kivy':
            from kivy.uix.floatlayout import FloatLayout
            from kivy.uix.button import Button
            self.root = FloatLayout()
            self.frame = kwargs['frame']
            self.next_button = Button(text='NEXT',
                                      size_hint_y=None,
                                      size_hint_x=None,
                                      height=30,
                                      width=60,
                                      font_size=12,
                                      pos=(330, 10),
                                      on_press=self.next_fill)
            self.root.add_widget(self.next_button)

        elif self.platform == 'Tk':
            from tkinter import Tk
            from tkinter import Canvas
            from tkinter import Frame
            from tkinter import Label
            from tkinter import NW
            self.master = Tk()
            self.root = Canvas(self.master, width=kwargs['frame'][2], \
                               height=kwargs['frame'][3])
            self.root.pack()
            self.frame = kwargs['frame']
            contour = Frame(self.master, height=30, width=60)
            contour.pack_propagate(0)  # don't shrink
            label = Label(contour, text='NEXT', fg='white', bg='#585858', \
                          height=30, width=60)
            label.bind("<Button-1>", self.tk_button_down)
            label.bind("<ButtonRelease-1>", self.tk_button_up)

            label.pack()
            label.config(font=('TkDefaultFont', 12), padx=0, pady=0)
            contour.place(x=330, y=360, anchor=NW)
Пример #24
0
    def __init__(self, master, poser: Poser, torch_device: torch.device):
        super().__init__()
        self.master = master
        self.poser = poser
        self.torch_device = torch_device

        self.master.title("Manual Poser")

        source_image_frame = Frame(self.master, width=256, height=256)
        source_image_frame.pack_propagate(0)
        source_image_frame.pack(side=LEFT)

        self.source_image_label = Label(source_image_frame,
                                        text="Nothing yet!")
        self.source_image_label.pack(fill=BOTH, expand=True)

        control_frame = Frame(self.master, borderwidth=2, relief=GROOVE)
        control_frame.pack(side=LEFT, fill='y')

        self.param_sliders = []
        for param in self.poser.pose_parameters():
            slider = Scale(control_frame,
                           from_=param.lower_bound,
                           to=param.upper_bound,
                           length=256,
                           resolution=0.001,
                           orient=HORIZONTAL)
            slider.set(param.default_value)
            slider.pack(fill='x')
            self.param_sliders.append(slider)

            label = Label(control_frame, text=param.display_name)
            label.pack()

        posed_image_frame = Frame(self.master, width=256, height=256)
        posed_image_frame.pack_propagate(0)
        posed_image_frame.pack(side=LEFT)

        self.posed_image_label = Label(posed_image_frame, text="Nothing yet!")
        self.posed_image_label.pack(fill=BOTH, expand=True)

        self.load_source_image_button = Button(control_frame,
                                               text="Load Image ...",
                                               relief=GROOVE,
                                               command=self.load_image)
        self.load_source_image_button.pack(fill='x')

        self.pose_size = len(self.poser.pose_parameters())
        self.source_image = None
        self.posed_image = None
        self.current_pose = None
        self.last_pose = None
        self.needs_update = False

        self.master.after(1000 // 30, self.update_image)
        def handle_click(event):
            frame = Frame(master=root, height=400, width=400)
            frame.pack_propagate(0)  # don't shrink

            x = event.x // 31
            y = event.y // 31
            #print(x,y)
            if gboard[y][x] == -1:

                gboard[y][x] = -2
                display_board(gboard, canvas)
                canvas.unbind("<Button-1>")
                #print("You Lose")
                label = Label(master=root,
                              text="You Lost!!\nBetter Luck Next Year! :( ",
                              font=("Arial", 40))
                label.pack(side="bottom")
                elapsed_time = int(time.time() - start_time)

                label2 = Label(master=root,
                               text=(elapsed_time),
                               font=("Arial", 20))
                label2.pack(side="bottom")

                button = Button(master=frame,
                                text="Cya Loser!",
                                command=root.destroy)
                button.pack(side="bottom")

                frame.pack()
            else:
                uncover_board(gboard, x, y)
                display_board(gboard, canvas)

                if check_won(gboard) == True:
                    canvas.unbind("<Button-1>")
                    label = Label(
                        master=root,
                        text=
                        "You're A Winner\n Hope You Enjoyed SHAPE 2019 :) ",
                        font=("Arial ", 40))
                    label.pack(side="top")
                    button1 = Button(master=frame,
                                     text="Bye Winner!",
                                     command=root.destroy)
                    button1.pack(side="bottom")
                    elapsed_time = int(time.time() - start_time)
                    label3 = Label(master=root,
                                   text=(elapsed_time),
                                   font=("Arial", 20))
                    label3.pack(side="bottom")
                    frame.pack()
                    #print("You won!")
                    canvas.unbind("<Button-1>")
Пример #26
0
  def add_main_settings(self):
    buttonsFrame = Frame(self.main_frame, padx=5, pady=5, height=60)
    buttonsFrame.pack_propagate(0)

    generateButton = ttk.Button(buttonsFrame, text="Generate ROM", command=self.generate_rom, width=10)
    generateButton.pack(side=LEFT, fill=BOTH, expand=True)
    self.copySettings = ttk.Button(buttonsFrame, text="Copy Settings to Clipboard", command=self.copy_to_clipboard, width=20)
    self.copySettings.pack(side=LEFT, fill=BOTH, expand=True)
    self.pasteSettings = ttk.Button(buttonsFrame, text="Paste Settings from Clipboard", command=self.read_from_clipboard, width=30)
    self.pasteSettings.pack(side=LEFT, fill=BOTH, expand=True)

    buttonsFrame.pack(fill=X, anchor="center", side=BOTTOM)
Пример #27
0
    def make_content_widget(self, data, height, width):
        if data.content:
            frame = Frame(self.canvas,
                          height=height - 2,
                          width=width - 2,
                          bg=self.get_fill_color_for_node(data))
            frame.pack()
            frame.pack_propagate(False)

            self.make_text_widget(data, frame, height - 2)

            return frame
Пример #28
0
    def show(self, tabs):
        self.parent = tabs
        root = Frame(tabs, width=self.width, height=self.height-50)
        root.pack_propagate(0)

        self.make_controls(root)

        self.element = root

        self.make_messages_box(root)

        self.__output_messages(self.topicName)
Пример #29
0
    def _criar_label(self, label):
        '''
        Criar label.
        '''
        frame = Frame(self, width=150, height=50)
        label = Label(frame, text=label, anchor='center', style='Slider.TLabel')
        
        label.bind('<Double-Button-1>', lambda e: self._spinbox.focus())

        label.pack(fill='both', expand=True, padx=5, pady=5)
        frame.pack(side='left')
        frame.pack_propagate(False)
Пример #30
0
class NavBar:
    def __init__(self, masterFrame: Frame) -> None:
        self.nextClickFuncs: List[Callable] = []
        self.previousClickFuncs: List[Callable] = []

        self.masterFrame = masterFrame
        self.masterFrame["bg"] = "black"

        self.nextButtonFrame = Frame(self.masterFrame)
        self.nextButtonFrame.pack_propagate(0)
        self.nextButtonFrame.grid(row=0, column=1, sticky=NSEW, padx=0, pady=0)

        self.nextButton = Button(self.nextButtonFrame,
                                 text="Next",
                                 command=self.nextClicked)
        self.nextButton.pack(fill=BOTH, expand=1)
        # self.nextButton.grid(row=0, column=1, sticky=NSEW)

        self.previousButtonFrame = Frame(self.masterFrame)
        self.previousButtonFrame.pack_propagate(0)
        self.previousButtonFrame.grid(row=0,
                                      column=0,
                                      sticky=NSEW,
                                      padx=0,
                                      pady=0)

        self.previousButton = Button(self.previousButtonFrame,
                                     text="Previous",
                                     command=self.previousClicked)
        self.previousButton.pack(fill=BOTH, expand=1)
        # self.previousButton.grid(row=0, column=0, sticky=NSEW)

    def resize(self, newSize: PhSize) -> None:
        self.masterFrame["width"] = newSize.width
        self.masterFrame["height"] = newSize.height

        self.nextButtonFrame["width"] = floor(newSize.width / 2)
        self.previousButtonFrame["width"] = floor(newSize.width / 2)

        self.nextButtonFrame["height"] = newSize.height
        self.previousButtonFrame["height"] = newSize.height
        print("NavBar", "Width:", newSize.width, "Height:", newSize.height)

    def nextClicked(self) -> None:
        for func in self.nextClickFuncs:
            func()

    def previousClicked(self) -> None:
        for func in self.previousClickFuncs:
            func()

    def Remove(self) -> None:
        self.masterFrame.destroy()
Пример #31
0
def additems(i, doreturn=False, bgcolor="#555"):
	returnable = []
	for item in i:
		global totalitems
		totalitems += 1
		ff = Frame(f, bg=bgcolor)
		item.body = item.author.name + ' || ' + item.fullname + '\n' + item.body
		item.body = str(totalitems) + '\n' + item.body
		ibody = item.body.replace('\n\n', '\n')
		ifinal = ''
		for paragraph in ibody.split('\n'):
			ifinal += '\n'.join(textwrap.wrap(paragraph))
			ifinal += '\n'  
	
		item.body = ifinal
		ww = 680
		wh = 10 
		wx = 20
		wy = 20 
		#print(ww, wh, wx, wy)
		ff.ww = ww
		ff.wh = wh
		ff.wx = wx
		ff.wy = wy
		ff.body = item.body
		ff.sourceitem = item
		ff.configure(width=ww, height=wh)
		ff.place(x=wx, y=wy)
		ff.bind("<B1-Motion>", framedrag)
		ff.bind("<ButtonRelease-1>", resetdrag)
		ff.pack_propagate(0)
		l = Label(ff, text=item.body, bg="#777")
		l.place(x=10,y=10)
		rt = Text(ff, width= 15, height= (len(ifinal.split('\n'))) - 2)
		rt.sourceitem = item
		rt.place(x=400,y=10)
		rb = Button(ff, text="Reply", command= lambda rep=rt: reply(rep))
		rb.place(x=400,y=wh-20)
		ff.rt = rt
		ff.rb = rb
		if not doreturn:
			widgets.append(ff)
		else:
			returnable.append(ff)
	if doreturn:
		return returnable
	else:
		refreshscreen()
Пример #32
0
class Xls2kml(object):
    '''
    Interface builted in Tkinter()
    '''

    def __init__(self):
        '''
        None -> None

        Builds the Tkinter window and all his elements.
        '''
        # variables ----------------------------------------------------
        # log file
        open("erros.log", "w").close()  # to open and clean the logfile
        logging.basicConfig(level=logging.DEBUG, filename='erros.log')
        sys.stderr = LogFile('stderr')  # Redirect stderr
        self.original_working_dir = os.getcwd()  # original working dir
        self.master = Tk()  # Tk() object
        self.master.title('EXCEL to KMZ Transformer - ver. 1.6')  # window name
        icons = os.getcwd() + os.sep + "icons" + os.sep  # path to icons
        foto_folder = os.getcwd() + os.sep + "fotos"  # path to fotos
        icon = icons + "compass.ico"
        self.master.iconbitmap(icon)  # window icon
        self.master.resizable(width=FALSE, height=FALSE)
        self.master.geometry("548x314")
        self.file_name = ""  # the name of the EXEL file
        self.last_dir = "C:/"
        # image to decorate the window
        self.img = ImageTk.PhotoImage(Image.open(icons + "excel-kmz.jpg"))
        # to use in frame, message, labels and buttons -----------------
        self.message = StringVar()
        self.message.set("\nSelecciona um ficheiro EXCEL")
        bg = "gray25"
        bg1 = "dark orange"
        fc = "white smoke"
        font = ("Helvetica", "8", "bold")
        text0 = " ----- "  # " ------------------------------------------ "
        text1 = " Boris & Vladimir Software "
        text = text0 + text1 + text0

        # Menu ---------------------------------------------------------
        self.menu = Menu(self.master)
        self.master.config(menu=self.menu)
        filemenu = Menu(self.menu)
        self.menu.add_cascade(label="Ficheiro", menu=filemenu)
        filemenu.add_command(label="Sair", command=self.__callback_3)
        filemenu.add_command(label='Pasta Fotos', command=lambda: (self.__open_folder(foto_folder)))
        # --------------------- NOVO -----------------------------------
        self.openGE = BooleanVar()  # não esquecer de importar BooleanVar
        self.openGE.set(False)
        optionsmenu = Menu(self.menu)
        self.menu.add_cascade(label="Opções", menu=optionsmenu)
        optionsmenu.add_checkbutton(label="Não abrir o Google Earth",
                                    onvalue=True, offvalue=False,
                                    variable=self.openGE)
        docsmenu = Menu(self.menu)
        docs = ["docs\manual.pdf", "docs\icons.pdf", "docs\colors.pdf",
                "docs\GPS.xlsx", "docs\GPS.kmz", "docs\Celulas.xlsx",
                "docs\Celulas.kmz", "docs\Foto.xlsx", "docs\Foto.kmz",
                "docs\Quadrado.xls", "docs\Quadrado.kmz"]
        self.menu.add_cascade(label="Documentação", menu=docsmenu)
        docsmenu.add_command(label="Manual",
                             command=lambda: (self.__open_file(docs[0])))
        docsmenu.add_command(label="Ícones",
                             command=lambda: (self.__open_file(docs[1])))
        docsmenu.add_command(label="Cores",
                             command=lambda: (self.__open_file(docs[2])))

        exemplemenu = Menu(docsmenu)
        docsmenu.add_cascade(label="Exemplos", menu=exemplemenu)

        gpsmenu = Menu(exemplemenu)
        exemplemenu.add_cascade(label="Trajetos", menu=gpsmenu)
        gpsmenu.add_command(label="Excel",
                            command=lambda: (self.__open_file(docs[3])))
        gpsmenu.add_command(label="Google Earth",
                            command=lambda: (self.__open_file(docs[4])))

        cellmenu = Menu(exemplemenu)
        exemplemenu.add_cascade(label="Células Telefónicas", menu=cellmenu)
        cellmenu.add_command(label="Excel",
                             command=lambda: (self.__open_file(docs[5])))
        cellmenu.add_command(label="Google Earth",
                             command=lambda: (self.__open_file(docs[6])))

        fotomenu = Menu(exemplemenu)
        exemplemenu.add_cascade(label="Fotos", menu=fotomenu)
        fotomenu.add_command(label="Excel",
                             command=lambda: (self.__open_file(docs[7])))
        fotomenu.add_command(label="Google Earth",
                             command=lambda: (self.__open_file(docs[8])))

        squaremenu = Menu(exemplemenu)
        exemplemenu.add_cascade(label="Quadrado", menu=squaremenu)
        squaremenu.add_command(label="Excel",
                             command=lambda: (self.__open_file(docs[9])))
        squaremenu.add_command(label="Google Earth",
                             command=lambda: (self.__open_file(docs[10])))

        helpmenu = Menu(self.menu)
        self.menu.add_cascade(label='Ajuda', menu=helpmenu)
        helpmenu.add_command(label="Sobre", command=self.__about)
        helpmenu.add_command(label="Ver erros",
                             command=lambda: (self.__open_file("erros.log")))

        # Frame to suport butons, labels and separators ----------------
        self.f = Frame(self.master, bg=bg)
        self.f.pack_propagate(0)  # don't shrink
        self.f.pack(side=BOTTOM, padx=0, pady=0)

        # Message and Labels -------------------------------------------
        self.l1 = Message(
            self.f, bg=bg1, bd=5, fg=bg, textvariable=self.message,
            font=("Helvetica", "13", "bold italic"), width=500).grid(
            row=0, columnspan=6, sticky=EW, padx=5, pady=5)
        self.l2 = Label(
            self.f, image=self.img, fg=bg
            ).grid(row=1, columnspan=6, padx=5, pady=2)
        self.l6 = Label(
            self.f, text=text, font=("Helvetica", "11", "bold"), bg=bg, fg=bg1
            ).grid(row=3, column=2, columnspan=3, sticky=EW, pady=5)

        # Buttons ------------------------------------------------------
        self.b0 = Button(
            self.f, text="Abrir EXCEL...", command=self.__callback, width=10,
            bg="forest green", fg=fc, font=font
            ).grid(row=3, column=0, padx=5, sticky=W)
        self.b1 = Button(
            self.f, text="Gravar KMZ", command=self.__callback_2, width=10,
            bg="DodgerBlue4", fg=fc, font=font
            ).grid(row=3, column=1, sticky=W)
        self.b2 = Button(
            self.f, text="Sair", command=self.__callback_3, width=10,
            bg="orange red", fg=fc, font=font
            ).grid(row=3, column=5, sticky=E, padx=5)

        # Separator ----------------------------------------------------
        # self.s = ttk.Separator(self.f, orient=HORIZONTAL).grid(
        #    row=4, columnspan=5, sticky=EW, padx=5, pady=5)

        # Progressbar --------------------------------------------------
        # self.pb = Canvas(self.f, width=260, height=10)
        self.s = ttk.Style()
        # themes: winnative, clam, alt, default, classic, vista, xpnative
        self.s.theme_use('winnative')
        self.s.configure("red.Horizontal.TProgressbar", foreground='green',
                         background='forest green')
        self.pb = ttk.Progressbar(self.f, orient='horizontal',
                                  mode='determinate',
                                  style="red.Horizontal.TProgressbar")
        self.pb.grid(row=2, column=0, columnspan=6, padx=5, pady=5, sticky=EW)

        # Mainloop -----------------------------------------------------
        self.master.mainloop()

    def __callback(self):  # "Abrir EXEL..." button handler ------------
        '''
        None -> None

        Opens a new window (filedialog.askopenfilename) to choose the
        EXCEL file that is necessary to make the KMZ file.
        '''
        title = 'Selecciona um ficheiro Excel'
        message = 'Ficheiro EXCEL carregado em memória.\nTransforma-o em KMZ!'
        self.file_name = filedialog.askopenfilename(title=title,
                                                    initialdir=self.last_dir)
        self.last_dir = self.file_name[:self.file_name.rfind('/')]

        if self.file_name[self.file_name.rfind('.')+1:] != 'xls' and \
                self.file_name[self.file_name.rfind('.')+1:] != 'xlsx':
            message = self.file_name + ' não é um ficheiro Excel válido!'
        self.message.set(message)

    def __callback_2(self):  # "Gravar KMZ" button handler ---------------
        '''
        None -> None

        Calls the function self.__threat()
        '''
        sleep(1)
        message = 'Ficheiro EXCEL carregado em memória.\nTransforma-o em KMZ!'
        if self.message.get() != message:
            self.message.set("\nEscolhe um ficheiro EXCEL primeiro")
            self.master.update_idletasks()
        else:
            self.message.set("\nA processar...")
            self.master.update_idletasks()
            sleep(1)
            self.__threads()

    def __callback_3(self):  # "Sair" button handler ---------------------
        '''
        None -> None

        Kills the window
        '''
        self.master.destroy()

    def __threads(self):
        '''
        None -> MyTread() objects

        Creates two threads to run at the same time the functions:
        self.__create_kmz()
        self.__progressbar()
        '''
        funcs = [self.__create_kmz, self.__progressbar]
        threads = []
        nthreads = list(range(len(funcs)))

        for i in nthreads:
            t = MyThread(funcs[i], (), funcs[i].__name__)
            threads.append(t)

        for i in nthreads:
            threads[i].start()

    def __create_kmz(self):
        '''
        None -> None

        Calls the exel_to_kml() atribute of the MotherControl() class
        And when it returns, calls self.__open_Google_Earth()
        '''
        kmz = MotherControl(self.file_name, self.original_working_dir).exel_to_kml()
        if type(kmz) == str:
            self.message.set(kmz)
            self.pb.stop()
            self.master.update_idletasks
        else:
            sleep(2)
            self.pb.stop()
            self.master.update_idletasks()
            self.__open_Google_Earth()

    def __open_Google_Earth(self):
        '''
        None -> None

        Opens the maded KMZ file in Google Earth
        '''
        sleep(1)
        self.master.update_idletasks()
        if not self.openGE.get():
            self.message.set("KMZ gravado com sucesso.\nA abrir o Google Earth...")
        else:
            self.message.set("\nKMZ gravado com sucesso.\n")
        sleep(2)
        self.master.update_idletasks()
        path = self.file_name[:self.file_name.rindex('/')]
        path_1 = self.file_name[self.file_name.rindex('/')+1:self.file_name.rfind('.')]
        kmzs = [x for x in os.listdir(path) if x[-4:] == '.kmz' and x[:-12] ==
                path_1]
        kmzs.sort()
        try:
            if not self.openGE.get():
                os.startfile(path + os.sep + kmzs[-1])
                sleep(2)
            self.message.set("\nSelecciona um ficheiro EXCEL")
        except:
            self.message.set("Instale o Google Earth\nhttp://www.google.com/earth/")
            self.master.update_idletasks()

    def __progressbar(self, ratio=0):
        '''
        None -> None

        Starts the progressbar in the window
        '''
        self.pb.start(50)

    def __about(self):
        '''
        None -> None

        Associated with the Help Menu.
        Creates a new window with the "About" information
        '''
        appversion = "1.6"
        appname = "EXCEL to KML Transformer"
        copyright = 14 * ' ' + '(c) 2013' + 12 * ' ' + \
            'SDATO - DP - UAF - GNR\n' + 34 * ' '\
            + "All Rights Reserved"
        licence = 18 * ' ' + 'http://opensource.org/licenses/GPL-3.0\n'
        contactname = "Nuno Venâncio"
        contactphone = "(00351) 969 564 906"
        contactemail = "*****@*****.**"

        message = "Version: " + appversion + 5 * "\n"
        message0 = "Copyright: " + copyright + "\n" + "Licença: " + licence
        message1 = contactname + '\n' + contactphone + '\n' + contactemail

        icons = os.getcwd() + os.sep + "icons" + os.sep  # path to icons
        icon = icons + "compass.ico"

        tl = Toplevel(self.master)
        tl.configure(borderwidth=5)
        tl.title("Sobre...")
        tl.iconbitmap(icon)
        tl.resizable(width=FALSE, height=FALSE)
        f1 = Frame(tl, borderwidth=2, relief=SUNKEN, bg="gray25")
        f1.pack(side=TOP, expand=TRUE, fill=BOTH)

        l0 = Label(f1, text=appname, fg="white", bg="gray25",
                   font=('courier', 16, 'bold'))
        l0.grid(row=0, column=0, sticky=W, padx=10, pady=5)
        l1 = Label(f1, text=message, justify=CENTER,
                   fg="white", bg="gray25")
        l1.grid(row=2, column=0, sticky=E, columnspan=3, padx=10, pady=0)
        l2 = Label(f1, text=message0,
                   justify=LEFT, fg="white", bg="gray25")
        l2.grid(row=6, column=0, columnspan=2, sticky=W, padx=10, pady=0)
        l3 = Label(f1, text=message1,
                   justify=CENTER, fg="white", bg="gray25")
        l3.grid(row=7, column=0, columnspan=2, padx=10, pady=0)

        button = Button(tl, text="Ok", command=tl.destroy, width=10)
        button.pack(pady=5)

    def __open_file(self, doc):
        try:
            os.startfile(doc)
        except:
            pass
            # os.system(doc)
            # não gosto disto mas os.startfile(doc)
            # faz com que a janela não se desenhe bem

    def __open_folder(self, folder):
        os.system('start explorer "' + folder + '"')