Пример #1
0
    def buttonbox(self, master):
        # add standard button box. override if you don't want the
        # standard buttons

        w = tix.Button(master, text="OK", width=10, command=self.ok, default=tix.ACTIVE)
        w.pack(side=tix.LEFT, padx=5, pady=5)
        w = tix.Button(master, text="Cancel", width=10, command=self.cancel)
        w.pack(side=tix.LEFT, padx=5, pady=5)

        self.bind("<Return>", self.ok)
        self.bind("<Escape>", self.cancel)
Пример #2
0
    def show_directs(self):
        for i, name in enumerate(self.directs['names']):
            print(name)
            for j in range(3):
                btn = tk.Button(self.top_frame, text=name)
                btn.bind('<Button-1>', self.direct_chosen)
                btn.grid(row=i, column=j)

        self.widget_directs = self.top_frame.grid_slaves()
Пример #3
0
        def search(self,initial=str()):
                # 1. Ask the card ID (set + number)
                resp = askstring("Ajouter une carte", "Saisissez l'identifiant à 6~8 caractères en bas à gauche de la carte", initialvalue=initial)
                if resp is None :
                        return
                z = re.fullmatch("(?P<code>p?[A-Za-z][A-Za-z0-9]{2})(?P<number>[0-9]{1,3}(a|b)?)", resp)
                if not z :
                        showerror("Saisie incorrecte", "Assurez-vous d'avoir correctement saisi l'identifiant (en respectant la casse)")
                        return
                set_id, num = z.groupdict()["code"].upper(), z.groupdict()["number"].lstrip("0")

                # if the card's already stored, we can add it manually without request to the remote API
                for i,card in enumerate(self._cards) :
                        if card.set == set_id and card.number == num :
                                self._cards[i] += 1
                                if card in self.cards : #means it's displayed
                                        self.update_one(i)
                                        # it may be not the same index in self.cards and self._cards
                                        self.names.listbox.select_set(self.cards.index(card))
                                        self.display_card()
                                return

                # 2. Proceed the request
                rq = Card.where(language=LANG, set=set_id, number=num).all()
                if not len(rq) :
                        rq = Card.where(language=LANG, set=set_id, number=num+"a").all() # maybe it's a flip card
                        if not len(rq) :
                                showerror("Aucune carte trouvée", "Le service distant ne répond pas, ou vérifiez votre saisie")
                                return
                if len(rq) > 1 : # never happens yet
                        tl = tix.TopLevel(self)
                        lf = tix.LabelFrame(tl, text="Carte(s) trouvée(s), cliquez sur la bonne")
                        lf.pack(fill="both",expand=True)
                        for i,card in enumerate(rq):
                                def mkbuttonjob(tl, rq, card):
                                        def buttonjob():
                                                tl.destroy()
                                                rq.clear()
                                                rq.append(card)
                                        return buttonjob
                                tix.Button(lf, image=card.getimg(), command=mkbuttonjob(tl, rq, card)).grod(column=i)
                        tl.mainloop()

                rq = rq[0]
                # 3. Add the found card to the existing database
                self._cards.append(rq)
                self.update(self.cards) # we pass self.cards for parameter, so that update will sort it
                if rq in self.cards :
                        self.names.listbox.select_set(self.cards.index(rq))
                        self.display_card()
Пример #4
0
    def sequentEntryBox(self, parent):
        seqFrame = tix.Frame(parent)

        label = tix.Label(seqFrame, text='Sequent')
        label.grid(row=0, column=0, padx=5, pady=5)

        self.sequentEntry = tix.Entry(seqFrame, width=100)
        self.sequentEntry.grid(row=0, column=1, padx=5, pady=5)

        self.proveBtn = tix.Button(seqFrame,
                                   text='Prove',
                                   command=self.onProveButton)
        self.proveBtn.grid(row=0, column=2, padx=5, pady=5)

        seqFrame.pack(fill=tix.X, ipadx=5, padx=40, pady=15)
Пример #5
0
    def __init__(self, master, proc_fn):
        self.master = master
        self.frame = tix.Frame(master)
        self.frame.width = 150
        self.frame.rowconfigure(0, minsize=15)
        self.frame.rowconfigure(3, minsize=15)
        self.frame.rowconfigure(5, minsize=15)
        self.frame.rowconfigure(7, minsize=15)
        self.frame.columnconfigure(0, minsize=15)
        self.frame.columnconfigure(4, minsize=15)
        self.frame.pack()

        tix.Label(self.frame, text="Archivo de Entrada :").grid(row=2,
                                                                sticky=tix.W)
        tix.Label(self.frame, text="Archivo de Salida  :").grid(row=4,
                                                                sticky=tix.W)

        self.input = tix.Entry(self.frame)
        self.input.grid(row=2, column=3)
        tix.Button(self.frame, text="...",
                   command=self.get_input).grid(row=2, column=2)
        self.output = tix.Entry(self.frame)
        self.output.grid(row=4, column=3)
        tix.Button(self.frame, text="...",
                   command=self.set_output).grid(row=4, column=2)

        tix.Button(self.frame, text="Cancelar",
                   command=self.frame.quit).grid(row=6, column=1)
        tix.Button(self.frame, text="Procesar", command=proc_fn).grid(row=6,
                                                                      column=3)

        self.box = None
        self.in_out_state = None
        self.ready = False
        self.in_file = None
        self.out_file = None
Пример #6
0
def main():
    top = tix.Tk()

    nb = tix.NoteBook(top, width=300, height=200)
    nb.pack(expand=True, fill="both")

    nb.add("page1", label="text")
    f1 = tix.Frame(nb.subwidget("page1"))
    st = tix.ScrolledText(f1)
    st.subwidget("text").insert("1.0", "Here is where the text goes...")
    st.pack(expand=True)
    f1.pack()

    nb.add("page2", label="Message Boxes")
    f2 = tix.Frame(nb.subwidget("page2"))
    # 通过联合使用expand,fill和anchor,在窗口大小改变时,可以精确地控制小部件的行为
    tix.Button(
        f2,
        text="error",
        bg="lightblue",
        command=lambda t="error", m="This is bad!": mb.showerror(t, m)).pack(
            fill="x", expand=True)
    tix.Button(
        f2,
        text="info",
        bg="pink",
        command=lambda t="info", m="Information": mb.showinfo(t, m)).pack(
            fill="x", expand=True)
    tix.Button(f2,
               text="warning",
               bg="yellow",
               command=lambda t="warning", m="Don't do it!": mb.showwarning(
                   t, m)).pack(fill="x", expand=True)
    tix.Button(
        f2,
        text="question",
        bg="green",
        command=lambda t="question", m="Will I?": mb.askquestion(t, m)).pack(
            fill="x", expand=True)
    tix.Button(f2,
               text="yes - no",
               bg="lightgrey",
               command=lambda t="yes - no", m="Are you sure?": mb.askyesno(
                   t, m)).pack(fill="x", expand=True)
    tix.Button(f2,
               text="yes - no - cancel",
               bg="black",
               fg="white",
               command=lambda t="yes - not - cancel", m="Last chance...": mb.
               askyesnocancel(t, m)).pack(fill="x", expand=True)

    f2.pack(side="top", fill="x")
    top.mainloop()
Пример #7
0
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry('700x700')

        self.scrollbar = tk.ScrolledWindow(self.root, scrollbar=tk.BOTH)
        self.scrollbar.pack(fill=tk.BOTH, expand=1)

        self.top_frame = tk.Frame(self.scrollbar.window)
        self.top_frame.pack(side=tk.TOP)

        self.bottom_frame = tk.Frame(self.scrollbar.window)
        self.bottom_frame.pack(side=tk.BOTTOM)

        self.forward = tk.Button(self.bottom_frame, text='далее')
        self.forward.pack(side=tk.LEFT)
        self.forward.bind('<1>', self.click_forward)
        self.forward.pos = ''

        self.path = tk.Label(self.bottom_frame, text='')
        self.path.pack(side=tk.LEFT)
Пример #8
0
    def refresh(self, bundle):
        self._controller.title(Constants.TITLE_GRAPHIC)
        self.clearWindow()

        # Mygtukas atgal, kuris grizta i Home (pries tai buvusi) langa
        backButton = tkx.Button(self, text="<-- ATGAL")
        backButton.pack()
        backButton.config(command=lambda: self._controller.switch_frame(
            Constants.WINDOW_HOME))

        # Jeigu keiciant langa buvo perduoti diagramos duomenys, sugeneruojama diagrama
        if bundle:
            # Vykdomas try/except blokas, kad isvengti diagramos braizymo klaidu:
            # Blogi duomenys, masyvu ilgiu neatitikimas (x asis turi daugiau reiksmiu nei y ir atvirksciai) ir pns.
            try:
                self.generateDiagram(bundle)
            except:
                self.showErrorLabel()
        else:
            self.showErrorLabel()
Пример #9
0
 def about_license_clicked(self):
     about = tix.Toplevel()  # bg="#0f0" does not work
     about.title("License")
     about.resizable(False, False)
     set_window_icon(about)
     ###
     msg1 = tix.Message(
         about,
         width=420,
         text=licenseText,
         font=("DejaVu Sans", 9, "bold"),
     )
     msg1.pack(fill="x", expand=True)
     ###########
     frame = tix.Frame(about)
     closeB = tix.Button(
         frame,
         text="Close",
         command=about.destroy,
         # bg="#ff0000",
         # activebackground="#ff5050",
     )
     closeB.pack(side="right")
     frame.pack(fill="x")
Пример #10
0
 def about_license_clicked(self):
     about = tix.Toplevel()  ## bg='#0f0' does not work
     about.title('License')
     about.resizable(False, False)
     about.wm_iconbitmap('@%s' % xbmLogo)
     ###
     msg1 = tix.Message(
         about,
         width=420,
         text=licenseText,
         font=('DejaVu Sans', 9, 'bold'),
     )
     msg1.pack(fill='x', expand=True)
     ###########
     frame = tix.Frame(about)
     closeB = tix.Button(
         frame,
         text='Close',
         command=about.destroy,
         #bg='#ff0000',
         #activebackground='#ff5050',
     )
     closeB.pack(side='right')
     frame.pack(fill='x')
Пример #11
0
 def about_credits_clicked(self):
     about = tix.Toplevel()  ## bg='#0f0' does not work
     about.title('Credits')
     about.resizable(False, False)
     set_window_icon(about)
     ###
     msg1 = tix.Message(
         about,
         width=500,
         text='\n'.join(authors),
         font=('DejaVu Sans', 9, 'bold'),
     )
     msg1.pack(fill='x', expand=True)
     ###########
     frame = tix.Frame(about)
     closeB = tix.Button(
         frame,
         text='Close',
         command=about.destroy,
         #bg='#ff0000',
         #activebackground='#ff5050',
     )
     closeB.pack(side='right')
     frame.pack(fill='x')
Пример #12
0
 def about_clicked(self):
     about = tix.Toplevel(width=600)  # bg="#0f0" does not work
     about.title("About PyGlossary")
     about.resizable(False, False)
     set_window_icon(about)
     ###
     msg1 = tix.Message(
         about,
         width=350,
         text="PyGlossary %s (Tkinter)" % VERSION,
         font=("DejaVu Sans", 13, "bold"),
     )
     msg1.pack(fill="x", expand=True)
     ###
     msg2 = tix.Message(
         about,
         width=350,
         text=aboutText,
         font=("DejaVu Sans", 9, "bold"),
         justify=tix.CENTER,
     )
     msg2.pack(fill="x", expand=True)
     ###
     msg3 = tix.Message(
         about,
         width=350,
         text=homePage,
         font=("DejaVu Sans", 8, "bold"),
         fg="#3333ff",
     )
     msg3.pack(fill="x", expand=True)
     ###
     msg4 = tix.Message(
         about,
         width=350,
         text="Install PyGTK to have a better interface!",
         font=("DejaVu Sans", 8, "bold"),
         fg="#00aa00",
     )
     msg4.pack(fill="x", expand=True)
     ###########
     frame = tix.Frame(about)
     ###
     button = tix.Button(
         frame,
         text="Close",
         command=about.destroy,
         # bg="#ff0000",
         # activebackground="#ff5050",
     )
     button.pack(side="right")
     ###
     button = tix.Button(
         frame,
         text="License",
         command=self.about_license_clicked,
         # bg="#00e000",
         # activebackground="#22f022",
     )
     button.pack(side="right")
     ###
     button = tix.Button(
         frame,
         text="Credits",
         command=self.about_credits_clicked,
         # bg="#0000ff",
         # activebackground="#5050ff",
     )
     button.pack(side="right")
     ###
     frame.pack(fill="x")
Пример #13
0
 def __init__(self, path="", **options):
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load(**options)
     #############################################
     rootWin = self.rootWin = tix.Tk()
     tix.Frame.__init__(self, rootWin)
     rootWin.title("PyGlossary (Tkinter)")
     rootWin.resizable(True, False)
     ########
     set_window_icon(rootWin)
     ########
     self.pack(fill="x")
     # rootWin.bind("<Configure>", self.resized)
     ######################
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load()
     self.pathI = ""
     self.pathO = ""
     self.fcd_dir = join(homeDir, "Desktop")
     ######################
     vpaned = tk.PanedWindow(self, orient=tk.VERTICAL)
     notebook = tix.NoteBook(vpaned)
     notebook.add("tab1", label="Convert", underline=0)
     notebook.add("tab2", label="Reverse", underline=0)
     convertFrame = tix.Frame(notebook.tab1)
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="Read from format")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     # comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     self.combobox_i = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     entry.bind_all("<KeyPress>", self.entry_changed)
     self.entry_i = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.browse_i,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="Write to format    ")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc)
     # comboVar.set(Glossary.writeDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     combo.bind("<Configure>", self.combobox_o_changed)
     self.combobox_o = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_changed)
     self.entry_o = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.browse_o,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     #######
     frame = tix.Frame(convertFrame)
     label = tix.Label(frame, text=" " * 15)
     label.pack(
         side="left",
         fill="x",
         expand=True,
     )
     button = tix.Button(
         frame,
         text="Convert",
         command=self.convert,
         # bg="#00e000",
         # activebackground="#22f022",
     )
     button.pack(
         side="left",
         fill="x",
         expand=True,
     )
     ###
     frame.pack(fill="x")
     ######
     convertFrame.pack(fill="x")
     vpaned.add(notebook)
     #################
     console = tix.Text(vpaned, height=15, background="#000000")
     # self.consoleH = 15
     # sbar = Tix.Scrollbar(
     #	vpaned,
     #	orien=Tix.VERTICAL,
     #	command=console.yview
     # )
     # sbar.grid ( row=0, column=1)
     # console["yscrollcommand"] = sbar.set
     # console.grid()
     console.pack(fill="both", expand=True)
     log.addHandler(TkTextLogHandler(console), )
     console.insert("end", "Console:\n")
     ####
     vpaned.add(console)
     vpaned.pack(fill="both", expand=True)
     self.console = console
     ##################
     frame2 = tix.Frame(self)
     clearB = tix.Button(
         frame2,
         text="Clear",
         command=self.console_clear,
         # bg="black",
         # fg="#ffff00",
         # activebackground="#333333",
         # activeforeground="#ffff00",
     )
     clearB.pack(side="left")
     ####
     label = tix.Label(frame2, text="Verbosity")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(
         frame2,
         comboVar,
         0,
         1,
         2,
         3,
         4,
     )
     comboVar.set(log.getVerbosity())
     comboVar.trace("w", self.verbosityChanged)
     combo.pack(side="left")
     self.verbosityCombo = comboVar
     #####
     pbar = ProgressBar(frame2, width=400)
     pbar.pack(side="left", fill="x", expand=True)
     self.pbar = pbar
     frame2.pack(fill="x")
     self.progressTitle = ""
     #############
     # vpaned.grid()
     # bottomFrame.grid()
     # self.grid()
     #####################
     # lbox = Tix.Listbox(convertFrame)
     # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb")
     # lbox.pack(fill="x")
     ##############
     frame3 = tix.Frame(self)
     aboutB = tix.Button(
         frame3,
         text="About",
         command=self.about_clicked,
         # bg="#e000e0",
         # activebackground="#f030f0",
     )
     aboutB.pack(side="right")
     closeB = tix.Button(
         frame3,
         text="Close",
         command=self.quit,
         # bg="#ff0000",
         # activebackground="#ff5050",
     )
     closeB.pack(side="right")
     frame3.pack(fill="x")
     # __________________________ Reverse Tab __________________________ #
     revFrame = tix.Frame(notebook.tab2)
     revFrame.pack(fill="x")
     ######################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="Read from format")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     # comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     self.combobox_r_i = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
     self.entry_r_i = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.r_browse_i,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     button = tix.Button(
         frame,
         text="Load",
         command=self.r_load,
         # bg="#7777ff",
     )
     button.pack(side="left")
     ###
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="Output Tabfile")
     label.pack(side="left")
     ###
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
     self.entry_r_o = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.r_browse_o,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     ##############################
     if path:
         self.entry_i.insert(0, path)
         self.entry_changed()
         self.load()
Пример #14
0
def run():
    # test profile data
    try:
        profile_config = profile.load()
    except profile.Error as e:
        tkinter.messagebox.showerror('error on loading profile data',
                                     'error on loading profile data.\n\n' + e)
        sys.exit(2)
    except Exception as e:
        tkinter.messagebox.showerror(
            'error on loading profile data',
            'error on loading profile data.\n\n' + repr(e))
        sys.exit(2)

    app = tk.Tk()
    # setup gui

    root = _root.Root(app)

    root.pack(side=tk.TOP)

    menuframe = tk.Frame(app)

    pcol = 0

    def set_action():
        root.set(_root.Root.exampleparam)

    setbtn = tk.Button(menuframe, text='Set Example', command=set_action)
    setbtn.grid(row=0, column=pcol, padx=5)
    pcol += 1

    def clear_action():
        root.clear()

    clearbtn = tk.Button(menuframe, text='Clear', command=clear_action)
    clearbtn.grid(row=0, column=pcol, padx=5)
    pcol += 1

    # get data and display on console
    def get_action():
        print(root.get())

    getbtn = tk.Button(menuframe, text='Dump to Console', command=get_action)
    getbtn.grid(row=0, column=pcol, padx=5)
    pcol += 1

    def val_action():
        err = root.validate()
        if err:
            error.show_as_messagebox(err)

    valbtn = tk.Button(menuframe, text='Validate', command=val_action)
    valbtn.grid(row=0, column=pcol, padx=5)
    pcol += 1

    def load_action():
        # get profile.config
        profile_config = profile.load()
        fname = tkinter.filedialog.askopenfilename(
            title='Load json file',
            defaultextension='.json',
            initialfile='TRIM.in.json',
            initialdir=profile_config['lastdir'],
            filetypes=[('JSON', '*.json'), ('All', '*')])
        if fname:
            with open(fname, 'rt') as stream:
                # save as json format
                d = json.load(stream)
                # check version of json data and solve it
                d = context.solve_version(d)
                root.set(d)

                # load successed save lastdir
                profile_config['lastdir'] = os.path.dirname(fname)
                profile.update(profile_config)

    loadbtn = tk.Button(menuframe, text='Load .json', command=load_action)
    loadbtn.grid(row=0, column=pcol, padx=5)
    pcol += 1

    def save_action():
        class VExecption(Exception):
            def __init__(self, err):
                Exception.__init__(self)
                self.err = err

        try:
            err = root.validate()
            if err:
                raise VExecption(err)
            d = root.get()
        except VExecption as e:
            tkinter.messagebox.showerror(
                'Validation error', 'validation error, save is aborted.\n\n' +
                error.format_errorstruct(e.err))
            return
        except Error as e:
            tkinter.messagebox.showerror(
                'exception error',
                'exception received, save is aborted.\n' + e)
            return

        # get profile.config
        profile_config = profile.load()

        fname = tkinter.filedialog.asksaveasfilename(
            title='Save TRIM input file',
            initialfile='TRIM.in',
            initialdir=profile_config['lastdir'],
            filetypes=[('TRIM input', '*.in'), ('All', '*')])
        if fname:
            # add context version
            d['version'] = context.currentversion

            # 0. remove existing .json
            json_name = fname + '.json'
            if os.path.exists(json_name):
                os.unlink(json_name)

            # 1. dump .json.temp
            jsont_name = fname + '.json.t'
            with open(jsont_name, 'wt') as stream:
                json.dump(d, stream, indent=2, sort_keys=True)

            # 2. save as trim data format
            with open(fname, 'wt') as stream:
                to_trim.to_trim(d, stream)

            # 3. rename .json.temp to .json
            os.rename(jsont_name, json_name)

            # file dump succeeded, save lastdir in the profile
            profile_config['lastdir'] = os.path.dirname(fname)
            profile.update(profile_config)

            spawn_trim(fname)

    getandsavebtn = tk.Button(menuframe,
                              text='Save (& run TRIM)',
                              command=save_action)
    getandsavebtn.grid(row=0, column=pcol, padx=5)

    menuframe.pack(side=tk.TOP)

    app.mainloop()
Пример #15
0
import tkinter.tix as tix
root = tix.Tk()

o = tix.FileSelectBox(root)
o.pack()


def print_file():
    print(o.cget("value"))


b = tix.Button(root, text="print")
b.config(command=print_file)
b.pack()

root.mainloop()
Пример #16
0
# create the event handler to clear the text
def evClear():
  txt = stHistory.subwidget('text')
  txt.insert('end',eHello.get()+'\n')
  eHello.delete(0, 'end')

# create the top level window/frame
top = tk.Tk()
F = tk.Frame(top)
F.pack(fill="both")

# Now the frame with text entry
fEntry = tk.Frame(F, border=1)
eHello = tk.Entry(fEntry)
eHello.pack(side="left")
stHistory = tk.ScrolledText(fEntry, width=150, height=55)
stHistory.pack(side="bottom", fill="x")
fEntry.pack(side="top")

# Finally the frame with the buttons. 
# We'll sink this one for emphasis
fButtons = tk.Frame(F, relief="sunken", border=1)
bClear = tk.Button(fButtons, text="Clear Text", command=evClear)
bClear.pack(side="left", padx=5, pady=2)
bQuit = tk.Button(fButtons, text="Quit", command=F.quit)
bQuit.pack(side="left", padx=5, pady=2)
fButtons.pack(side="top", fill="x")

# Now run the eventloop
F.mainloop()
	def __init__(self,visualize,visualizescore,visualizeindex):
		self.window=tix.Tk()
		self.window.title("Results Page")
		scr_win = tix.ScrolledWindow(self.window,width=1500, height=786)
		
		scr_win.grid(row=0,column=0)
		sframe = scr_win.window

		n=len(visualize)
		p=int(n/5)
		pp=n%5
		print("total pages : "+str(p+1),"last page entries : "+str(pp))
		
		# sorting visualize		
		courseobjects=[]
		percentagematch1=[]
		stringmatches=[]
		for i in visualizescore :
			percentagematch1.append(i)
		visualizescore.sort(reverse=True)

		i=0
		percentagematch=[]
		while i<len(visualizeindex) :
			p=percentagematch1.index(visualizescore[i])
			courseobjects.append(visualizeindex[p])
			stringmatches.append(visualize[p])
			percentagematch.append(visualizescore[i])
			i=i+1

		# print(courseobjects)
		# print(stringmatches)
		# print(percentagematch)

		# i=0
		# # while i<len(courseobjects) :
		# # 	print(courseobjects[i])
		# # 	print(stringmatches[i])
		# # 	print(percentagematch[i])
		# # 	print("\n\n")
		# # 	i=i+1
		def visualizebutton(mm):
			# print("________________match words ________")
			# print(mm.matchwords)
			
			# print("__________________source topics________________")
			# print(mm.sourcetopics)
			# print("__________________target topics________________")
			# print(mm.topics)
			# print("__________________topic matching_______________________")
			i=0
			while i <len(mm.matchwords):
				print(mm.matchwords[i]+" : "+mm.matchwords[i+1]+" : "+str(mm.matchvalues[i]))
				i=i+2
			print("-------------")
			print(mm.matchwords)
			c=comparepage(mm)

		def visitbutton(mm):
			print(mm.url)
			webbrowser.open(mm.url)

		i=0
		coursefuncobjects=[]
		while i<len(courseobjects):
			m=courseobjects[i]
			mm=course(m)
			mm.percentage=percentagematch[i]
			mm.string=stringmatches[i]
			zx=[]
			zxv=[]
			zxc=[]
			k=stringmatches[i]
			for kk in k :
				kkk=kk.split(" :")
				v=kkk[1]
				j=kkk[0]
				jj=j.split("==")
				zxc.append(jj[0])
				if int(v)>0 :

					j=kkk[0]
					jj=j.split("==")
					zx.append(jj[0])
					
					zx.append(jj[1])
					zxv.append(int(v))
					zxv.append(int(v))

			mm.matchwords=zx
			mm.matchvalues=zxv
			mm.sourcetopics=zxc
			coursefuncobjects.append(mm)
			i=i+1
			# print(str(mm.title)+"\n"+"percentage matched :"+str(mm.percentage)+"\n"+str(mm.creators)+"\n"+str(mm.level)+" "+str(mm.startdate)+"; "+str(mm.duration)+"\n"+str(mm.review)+"pricing : "+"N/A")
			# m=visualizeindex[0]
			# mm=m.find("coursetitle").text
			# lbl1 = tkinter.Label(self.window, text="Title : "+str(mm),font=("Arial Black",35))
			# lbl1.pack()
		# info=str(mm.title)+"\n"+str(mm.url)+"\n"+"percentage matched :"+str(mm.percentage)+"\n"+"Created By :"+str(mm.creators)+"\n"+"level :"+str(mm.level)+" ; "+str(mm.startdate)+"; "+str(mm.duration)+"\n"+str(mm.review)+"pricing : "+"N/A"
			# print("\n\n\n\n")
			# print(mm.topics)
			# print(mm.string)
			# print(mm.matchwords)
			# print(mm.matchvalues)
			# print("\n\n\n\n")
		
		
		# mm0=courseobjects[0]
		# info0=str(mm.title)+"\n"+str(mm.url)+"\n"+"percentage matched :"+str(mm.percentage)+"\n"+"Created By :"+str(mm.creators)+"\n"+"level :"+str(mm.level)+" ; "+str(mm.startdate)+"; "+str(mm.duration)+"\n"+str(mm.review)+"pricing : "+"N/A"
		# lbl0 = tix.Label(sframe, text=info,font=("Arial Black",20))
		# lbl1.grid(row=2*i,column=0)
		# nextbutton=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm))
		# nextbutton.grid(row=2*i,column=1)
		# nextbutton=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm))
		# nextbutton.grid(row=2*i,column=2)
		# lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
		# lbl1.grid(row=2*i+1,column=0)

		def roundstring22(str):
			l=len(str)
			i=18-l
			str=str+" "
			return str

		def roundstring85(str):
			l=len(str)
			# print(l)
			i=20-l
			str="  "+str
			return str

		def infofunc(mm):
				
			info=""
			title=mm.title
			title=roundstring85(title)
			l="Course Name"
			l=roundstring22(l)
			info=info+l+":"+title+"\n"

			provider="Coursera"
			provider=roundstring85(provider)
			l="MOOC Provider"
			l=roundstring22(l)
			info = info+l+":"+provider+"\n"

			link=mm.url
			link=roundstring85(link)
			l="Course Link"
			l=roundstring22(l)
			info=info+l+" : "+link+"\n"

			offeredby=mm.creators
			offeredby=roundstring85(offeredby)
			l="Offered By"
			l=roundstring22(l)
			info=info+l+":"+offeredby+"\n"

			z=mm.startdate
			x="no start date "
			# print(z,k)
			if z==x :
				zx="Self Paced"
				zx=roundstring85(zx)
				zxs="Course Type"
				zxs=roundstring22(zxs)
				duration=mm.duration
				duration=roundstring85(duration)
				d="Estimated Duration"
				d=roundstring22(d)
				info = info+zxs+":"+zx+"\n"+d+":"+duration+"\n"

				z1="Avg User Rating"
				z=roundstring22(z1)
				x=mm.review
				x=roundstring85(x)
				info=info+z+":"+x+"\n"

				p="Percentage Match"
				p=roundstring22(p)
				pp=mm.percentage
				pp=str(round(pp, 2))
				pp=roundstring85(pp)
				info=info+p+":"+pp+"\n"
	    	
				p="Price"
				p=roundstring22(p)
				pp="Not Available"
				pp=roundstring85(pp)
				info=info+p+":"+pp

				
				return info

			else :
				zx="Scheduled"
				zx=roundstring85(zx)
				zxs="Course Type"
				zxs=roundstring22(zxs)
				startdate=mm.startdate
				startdate=roundstring85(startdate)
				d="Start Date"
				d=roundstring22(d)
				info = info+zxs+":"+zx+"\n"+d+":"+startdate+"\n"
				z="Avg User Rating"
				z=roundstring22(z)
				x=mm.review
				x=roundstring85(x)
				info=info+z+":"+x+"\n"

				p="Percentage Match"
				p=roundstring22(p)
				pp=mm.percentage
				pp=str(round(pp, 2))
				pp=roundstring85(pp)
				info=info+p+":"+pp+"\n"
	    		
				p="Price"
				p=roundstring22(p)
				pp="Not Available"
				pp=roundstring85(pp)
				info=info+p+":"+pp

				
				return info

			
			


		i=0
		try:
			# print("0")
			mm0=coursefuncobjects[i]
			# print("1")
			info=infofunc(mm0)
			# print("2")
			lbl0 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl0.grid(row=2*i,column=0)
			nextbutton0=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm0))
			nextbutton0.grid(row=2*i,column=1)
			nextbutton00=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm0))
			nextbutton00.grid(row=2*i,column=2)
			lbl0 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl0.grid(row=2*i+1,column=0)
		except :
			pass

		i=1
		try:
			mm1=coursefuncobjects[i]
			info=infofunc(mm1)
			lbl = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl.grid(row=2*i,column=0)
			nextbutton1=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm1))
			nextbutton1.grid(row=2*i,column=1)
			nextbutton11=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm1))
			nextbutton11.grid(row=2*i,column=2)
			lbl = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl.grid(row=2*i+1,column=0)
		except :
			pass
		
		i=2
		try:
			mm2=coursefuncobjects[i]
			info=infofunc(mm2)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton2=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm2))
			nextbutton2.grid(row=2*i,column=1)
			nextbutton22=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm2))
			nextbutton22.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=3
		try:
			mm3=coursefuncobjects[i]
			info=infofunc(mm3)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton3=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm3))
			nextbutton3.grid(row=2*i,column=1)
			nextbutton33=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm3))
			nextbutton33.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=4
		try:
			mm4=coursefuncobjects[i]
			info=infofunc(mm4)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton4=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm4))
			nextbutton4.grid(row=2*i,column=1)
			nextbutton44=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm4))
			nextbutton44.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=5
		try:
			mm5=coursefuncobjects[i]
			info=infofunc(mm5)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton5=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm5))
			nextbutton5.grid(row=2*i,column=1)
			nextbutton55=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm5))
			nextbutton55.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=6
		try:
			mm6=coursefuncobjects[i]
			info=infofunc(mm6)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton6=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm6))
			nextbutton6.grid(row=2*i,column=1)
			nextbutton66=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm6))
			nextbutton66.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=7
		try:
			mm7=coursefuncobjects[i]
			info=infofunc(mm7)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton7=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm7))
			nextbutton7.grid(row=2*i,column=1)
			nextbutton77=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm7))
			nextbutton77.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=8
		try:
			mm8=coursefuncobjects[i]
			info=infofunc(mm8)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton8=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm8))
			nextbutton8.grid(row=2*i,column=1)
			nextbutton88=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm8))
			nextbutton88.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=9
		try:
			mm9=coursefuncobjects[i]
			info=infofunc(mm9)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton9=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm9))
			nextbutton9.grid(row=2*i,column=1)
			nextbutton99=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm9))
			nextbutton99.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		
		i=10
		try:
			mm10=coursefuncobjects[i]
			info=infofunc(mm10)
			lbl0 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl0.grid(row=2*i,column=0)
			nextbutton10=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm10))
			nextbutton10.grid(row=2*i,column=1)
			nextbutton1010=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm10))
			nextbutton1010.grid(row=2*i,column=2)
			lbl0 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl0.grid(row=2*i+1,column=0)
		except :
			pass

		i=11
		try:
			mm11=coursefuncobjects[i]
			info=infofunc(mm11)
			lbl = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl.grid(row=2*i,column=0)
			nextbutton11=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm11))
			nextbutton11.grid(row=2*i,column=1)
			nextbutton1111=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm11))
			nextbutton1111.grid(row=2*i,column=2)
			lbl = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl.grid(row=2*i+1,column=0)
		except :
			pass
		
		i=12
		try:
			mm12=coursefuncobjects[i]
			info=infofunc(mm12)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton12=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm12))
			nextbutton12.grid(row=2*i,column=1)
			nextbutton1212=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm12))
			nextbutton1212.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=13
		try:
			mm13=coursefuncobjects[i]
			info=infofunc(mm13)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton13=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm13))
			nextbutton13.grid(row=2*i,column=1)
			nextbutton1313=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm13))
			nextbutton1313.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=14
		try:
			mm14=coursefuncobjects[i]
			info=infofunc(mm14)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton14=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm14))
			nextbutton14.grid(row=2*i,column=1)
			nextbutton1414=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm14))
			nextbutton1414.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=15
		try:
			mm15=coursefuncobjects[i]
			info=infofunc(mm15)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton15=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm15))
			nextbutton15.grid(row=2*i,column=1)
			nextbutton1515=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm15))
			nextbutton1515.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=16
		try:
			mm16=coursefuncobjects[i]
			info=infofunc(mm16)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton16=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm16))
			nextbutton16.grid(row=2*i,column=1)
			nextbutton1616=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm16))
			nextbutton1616.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=17
		try:
			mm17=coursefuncobjects[i]
			info=infofunc(mm17)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton17=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm17))
			nextbutton17.grid(row=2*i,column=1)
			nextbutton1717=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm17))
			nextbutton1717.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=18
		try:
			mm18=coursefuncobjects[i]
			info=infofunc(mm18)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton18=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm18))
			nextbutton18.grid(row=2*i,column=1)
			nextbutton1818=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm18))
			nextbutton1818.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass

		i=19
		try:
			mm19=coursefuncobjects[i]
			info=infofunc(mm19)
			lbl1 = tix.Label(sframe, text=info,font=("Arial Black",20))
			lbl1.grid(row=2*i,column=0)
			nextbutton19=tix.Button(sframe,text="Visit",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visitbutton(mm19))
			nextbutton19.grid(row=2*i,column=1)
			nextbutton1919=tix.Button(sframe,text="Compare",bd=2,bg='blue',fg='white',font=("Arial Black",15),command=lambda:visualizebutton(mm19))
			nextbutton1919.grid(row=2*i,column=2)
			lbl1 = tix.Label(sframe, text="______________________________________________________________",font=("Arial Black",20))
			lbl1.grid(row=2*i+1,column=0)
		except :
			pass


	
		# self.window.eval('tk::PlaceWindow %s center' % self.window.winfo_pathname(self.window.winfo_id()))		
		self.window.mainloop()
Пример #18
0
    def refresh(self, bundle):
        # Nustatomas lango pavadinimas
        self._controller.title(Constants.TITLE_HOME)
        # Isvalomi pries tai lange buve elementai pasinaudojant elementu is klases WindowUtils (paveldejimas)
        self.clearWindow()

        infoLabel = tkx.Label(
            self,
            text=
            "Iveskite didesni uz 0 sveika skaiciu \nis kurio bus sugeneruotas jusu nurodyto dydzio teigiamu skaiciu masyvas"
        )
        infoLabel.pack()

        self._numberValue = tkx.StringVar(self)
        self._numberValue.trace("w", self.entryChangeListener)

        self._threadValue = tkx.StringVar(self)
        self._threadValue.trace("w", self.entryChangeListener)

        self._numberEntry = tkx.Entry(self, textvariable=self._numberValue)
        self._numberEntry.pack()

        threadInfoLabel = tkx.Label(
            self,
            text=
            "Iveskite sveika skaiciu, kuris nurodys pasirinktu giju kieki (maziausiai 1, daugiausiai 3)"
        )
        threadInfoLabel.pack()

        self._threadsEntry = tkx.Entry(self, textvariable=self._threadValue)
        self._threadsEntry.pack()

        typeInfoLabel = tkx.Label(
            self, text="Pasirinkite programos veiksmu vykdymo budus")
        typeInfoLabel.pack()

        self._choicesFrame = tkx.Frame(self)
        self._choicesFrame.pack()

        # CheckBoxes arba kitaip veiksmu vykdymo tipu pasarinkimas
        self._choices = ("Nuoseklus vykdymas", "Gijomis paremtas vykdymas")
        self._optionsMenuValue = []
        self._optionsMenuButtons = []
        for i in range(len(self._choices)):
            # Nustatoma mygtuko reiksme. 1 - pasirinkta, 0 - nepasirinkta
            self._optionsMenuValue.append(tkx.IntVar(value=1))
            self._optionsMenuValue[i].trace("w", self.entryChangeListener)
            self._optionsMenuButtons.append(
                tkx.Checkbutton(self._choicesFrame,
                                text=self._choices[i],
                                variable=self._optionsMenuValue[i],
                                onvalue=1,
                                offvalue=0))
            self._optionsMenuButtons[i].pack()

        self._buttonsFrame = tkx.Frame(self)
        self._buttonsFrame.pack()

        self._submitButton = tkx.Button(self._buttonsFrame, text="Vykdyti")
        self._submitButton.pack(
            side="left",
            anchor=tkx.NW,
            expand=True,
        )
        # Veiksmu vykdyma perkeliu i atskira Thread'a, kad neatsitiktu taip, jog esant dideliam duomenu kiekiui
        # programa taps "not responding"
        self._submitButton.config(
            command=lambda: threading.Thread(target=self.doActions).start(),
            state='disabled')

        self._clearButton = tkx.Button(self._buttonsFrame, text="Isvalyti")
        self._clearButton.pack(
            side="left",
            anchor=tkx.NW,
            expand=True,
        )
        self._clearButton.config(command=partial(self._actionClear))

        self._exitButton = tkx.Button(self._buttonsFrame, text="Uzdaryti")
        self._exitButton.pack(
            side="left",
            anchor=tkx.NW,
            expand=True,
        )
        self._exitButton.config(command=lambda: self._controller.exit())

        self._errorLabel = tkx.Label(self, text="")
        self._errorLabel.pack()

        self._progressLabel = tkx.Label(self, text="")
        self._progressLabel.pack()
Пример #19
0
    def __init__(self, item, on_item_update, on_item_remove):
        # make sure only one dialog at a time
        try:
            ActionDialog._current_dialog.destroy()
        except Exception:
            pass

        # init
        self.item = item
        self.on_item_update = on_item_update
        self.on_item_remove = on_item_remove

        # dialog
        self.dialog = tk.Tk()
        self.dialog.title("Edit")
        self.dialog.resizable(width=False, height=False)

        # labels
        label_frame = tk.Frame(self.dialog,
                               highlightbackground="gray",
                               highlightcolor="gray",
                               highlightthickness=2)
        pad = tk.Frame(label_frame, height=8)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        # text hash
        tk.Label(label_frame, text="hash:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_hash = tk.Text(label_frame, width=10, height=1, wrap=tk.WORD)
        text_hash.insert(tk.END, item.entry[:item.entry.find(".")])
        text_hash.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_hash.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text key
        tk.Label(label_frame, text="key:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_key = tk.Text(label_frame, width=80, height=1, wrap=tk.WORD)
        text_key.insert(tk.END, item.key)
        text_key.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_key.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text value
        tk.Label(label_frame, text="value: ", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_value = tk.Text(label_frame, width=80, height=5, wrap=tk.WORD)
        text_value.insert(tk.END, item.value)
        text_value.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_value.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        pad = tk.Frame(label_frame, height=8)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        label_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        # action buttons
        btn_frame = tk.Frame(self.dialog)
        btn = tk.Button(btn_frame,
                        text="Cancel",
                        command=lambda: self.dialog.destroy())
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)

        btn = tk.Button(btn_frame,
                        text="Remove",
                        command=lambda: self.action_remove(self.item))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)

        btn = tk.Button(btn_frame,
                        text="Save",
                        command=lambda: self.action_save(
                            text_hash.get("1.0", tk.END)[:-1],
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1]))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)
        btn_frame.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)

        ActionDialog._current_dialog = self.dialog
Пример #20
0
    def __init__(self, adapter):
        # make sure only one dialog at a time
        try:
            SearchDialog._current_dialog.destroy()
        except Exception:
            pass

        # init
        self.adapter = adapter
        self.last_query_params = ["", ""]
        self.last_query = {}
        self.last_query_index = -1

        # dialog
        self.dialog = tk.Tk()
        self.dialog.title("Search")
        self.dialog.resizable(width=False, height=False)
        self.dialog.config(highlightbackground="gray",
                           highlightcolor="gray",
                           highlightthickness=2)
        self.dialog.protocol("WM_DELETE_WINDOW", self.on_close)

        # labels
        label_frame = tk.Frame(self.dialog)

        # text key
        tk.Label(label_frame, text="key:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_key = tk.Text(label_frame, width=40, height=1, wrap=tk.WORD)
        text_key.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_key.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text value
        tk.Label(label_frame, text="value: ", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_value = tk.Text(label_frame, width=40, height=1, wrap=tk.WORD)
        text_value.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_value.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        pad = tk.Frame(label_frame, height=14)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        label_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

        # action buttons
        btn_frame = tk.Frame(self.dialog)
        btn_row1_frame = tk.Frame(btn_frame)
        btn = tk.Button(btn_row1_frame,
                        text="<<<",
                        width=10,
                        command=lambda: self.action_search(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1], -1))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=False, padx=2, pady=2)

        btn = tk.Button(btn_row1_frame,
                        text=">>>",
                        width=10,
                        command=lambda: self.action_search(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1], +1))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=False, padx=2, pady=2)
        btn_row1_frame.pack(side=tk.TOP, fill=tk.X, expand=False)

        btn = tk.Button(btn_frame,
                        text="Count",
                        width=20,
                        command=lambda: self.action_count(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1]))
        btn.pack(side=tk.TOP, fill=tk.X, expand=False, padx=2, pady=2)

        self.found_label = tk.Label(btn_frame)
        self.found_label.pack(side=tk.TOP,
                              fill=tk.BOTH,
                              expand=True,
                              padx=2,
                              pady=2)
        btn_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=2, pady=2)

        SearchDialog._current_dialog = self.dialog
Пример #21
0
top = tix.Tk()

nb = tix.NoteBook(top, width=300, height=200)
nb.pack(expand=True, fill='both')

nb.add('page1', label="Text")
f1 = tix.Frame(nb.subwidget('page1'))
st = tix.ScrolledText(f1)
st.subwidget('text').insert("1.0", "Here is where the text goes...")
st.pack(expand=True)

nb.add('page2', label="Message Boxes")
f2 = tix.Frame(nb.subwidget('page2'))
tix.Button(
    f2,
    text="error",
    bg="lightblue",
    command=lambda t="error", m="This is bad!": mb.showerror(t, m)).pack(
        fill='x', expand=True)
tix.Button(f2,
           text="info",
           bg='pink',
           command=lambda t="info", m="Information": mb.showinfo(t, m)).pack(
               fill='x', expand=True)
tix.Button(
    f2,
    text="warning",
    bg='yellow',
    command=lambda t="warning", m="Don't do it!": mb.showwarning(t, m)).pack(
        fill='x', expand=True)
tix.Button(
    f2,
Пример #22
0
frame = tix.Frame(root)
frame.pack()
scrolledwin = tix.ScrolledWindow(frame)
scrolledwin.pack(side="right", fill="y")
scr = scrolledwin.window
col = 0
line_mark = 0
row_ = 0
bigfont = ("Helvetica", "50", 'bold')
for i in range(num):
    if col == 9:
        col = 0
        row_ += 1
    txt = x[i]
    globals()['btn{}'.format(i)] = tix.Button(scr,
                                              text="%s" % txt,
                                              bg="ivory",
                                              fg="brown",
                                              activebackground='yellow',
                                              activeforeground="blue")
    globals()['btn{}'.format(i)].config(font=bigfont)
    globals()['btn{}'.format(i)].grid(row=row_, column=col)
    if (line_mark % 2 == 1):
        globals()["line_lbl{}".format(i)] = tix.Label(scr, text="     ")
        globals()["line_lbl{}".format(i)].config(font=bigfont)
        col += 1
        globals()["line_lbl{}".format(i)].grid(row=row_, column=col)
    col += 1
    line_mark += 1
root.mainloop()
Пример #23
0
    def _createWidgets_(self):
        self.fsFrame = tk.Frame(self.mFrame)
        self.tk_setPalette(background = '#F2D7D5') ##F2D7D5
        self.btQuit = tk.Button(self.mFrame)
        self.btQuit.config(text = 'Завершить', command = self.root.destroy)
        self.btQuit.pack(side =tk.BOTTOM)
        ##self.loadFrame = tk.LabelFrame(self.fsFrame)
        ##self.listBMsg = tk.Listbox(self.loadFrame, relief='flat')

        self.topElemsFrame = tk.Frame(self.fsFrame)
        self.btnLstFrame = tk.LabelFrame(self.topElemsFrame)
        self.smplUnqOptFrame = tk.Frame(self.topElemsFrame)
        
        self.smplUnqOptLabelF = tk.LabelFrame(self.smplUnqOptFrame)
        
        self._lbSmplUnqOptLabelF_ = self.getSubWgts(self.smplUnqOptLabelF, tk._dummyLabel)
        self._lbSmplUnqOptLabelF_.config(text = "Уник. сэмпл.")
        self._frSmplUnqOptLabelF_ = self.getSubWgts(self.smplUnqOptLabelF, tk._dummyFrame)
        
        self.cbIfCutUrl = tk.Checkbutton(self._frSmplUnqOptLabelF_, text = "Сократ. Url в назв. сэмпл.", variable = self._varIfCutUrlInSmpl_)
        
        self.smplThruNum = tk.LabelFrame(self._frSmplUnqOptLabelF_)
        self._lbSmplThruNum_ = self.getSubWgts(self.smplThruNum, tk._dummyLabel)
        self._lbSmplThruNum_.config(text = "Скозн. нумер.")
        self._frSmplThruNum_ = self.getSubWgts(self.smplThruNum, tk._dummyFrame)
        self.smplThruNumCntrl = tk.Radiobutton(self._frSmplThruNum_, text = "Контроллер", variable = self._varRbSmplThruNum_, value = "Controller")
        self.smplThruNumThGr = tk.Radiobutton(self._frSmplThruNum_, text = "ТредГрупп", variable = self._varRbSmplThruNum_, value = "ThreadGroup")
        self.smplThruNumTstPl = tk.Radiobutton(self._frSmplThruNum_, text = "ТестПлан", variable = self._varRbSmplThruNum_, value = "TestPlan")
        self.smplThruNumCntrl.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNumThGr.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNumTstPl.pack(side = tk.TOP, anchor = tk.W)
        
        self.cbIfNotRstrUnqInSmpl = tk.Checkbutton(self._frSmplUnqOptLabelF_, text = "Не восст. ориг. назв. сэмпл.", variable = self._varCbIfNotRstrUnqInSmpl_)
        
        self.cbIfCutUrl.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNum.pack(side = tk.TOP, anchor = tk.W)
        self.cbIfNotRstrUnqInSmpl.pack(side = tk.TOP, anchor = tk.W)
        
        self.smplUnqOptLabelF.pack(anchor = tk.E)
        self.smplUnqOptFrame.config(width = self.smplThruNum.winfo_reqwidth(), padx = 100)
        
        self.paramVolatilFrame = tk.Frame(self.topElemsFrame)
        self.update_idletasks()
        leftCornerWidth = self._frSmplUnqOptLabelF_.winfo_reqwidth() + int(self.smplUnqOptLabelF.cget("borderwidth")) * 2
        leftCornerHeight = self.smplUnqOptLabelF.winfo_reqheight() + 2
        self.paramVolatilFrame.config(width = leftCornerWidth + 202, height = leftCornerHeight)
        self.paramVolatilFrame.pack_propagate(0)
        
        self.paramVolatilLabel = tk.LabelFrame(self.paramVolatilFrame)
        self._lbParamVolatilLabel_ = self.getSubWgts(self.paramVolatilLabel, tk._dummyLabel)
        self._lbParamVolatilLabel_.config(text = "Статистика")
        self._frParamVolatilLabel_ = self.getSubWgts(self.paramVolatilLabel, tk._dummyFrame)
        
        self.frBtGetVolatilPrm = tk.Frame(self._frParamVolatilLabel_)
        self.btBtGetVolatilPrm = tk.Button(self.frBtGetVolatilPrm, text="Получ. стат. по парам.")

        self.rBtGetVolatilPrm = tk.Radiobutton(self.frBtGetVolatilPrm, text = 'Волатил.   ', variable = self._volatilPrm_, value = True)
        self.rBtGetNonVolatilPrm = tk.Radiobutton(self.frBtGetVolatilPrm, text = 'Не волатил.', variable = self._volatilPrm_, value = False)
        self.btBtGetVolatilPrm.config(relief='groove')
        self.btBtGetVolatilPrm.config(command = self.prcdfGetVolatilPrms)
        self.frBtGetVolatilPrm.pack(side = tk.TOP, anchor = tk.W)
        self.btBtGetVolatilPrm.pack(side = tk.LEFT)
        self.rBtGetVolatilPrm.pack(side = tk.TOP, anchor = tk.W)
        self.rBtGetNonVolatilPrm.pack(side = tk.TOP, anchor = tk.W)

        self.paramVolatilLabel.pack(anchor = tk.W)

        ##self.msgsToAscFrame = tk.Listbox(self.loadFrame, relief='flat', selectmode='multiple')
        ##self.vScroll = tk.Scrollbar(self.loadFrame, orient=tk.VERTICAL)
        ##self.msgsToAscFrame.config( yscrollcommand=self.vScroll.set)
        self.consFrame = tk.LabelFrame(self.mFrame)
        #self.varsFrame = tk.LabelFrame(self.fsFrame)

        ##self.btnCollctnFrame = tk.LabelFrame(self.fsFrame)
        
        self.mCllctnFrame = tk.Frame(self.mFrame)
        
        self._lbBtnLstFrame_ = self.getSubWgts(self.btnLstFrame, tk._dummyLabel)
        self._lbBtnLstFrame_.config(text = 'Раб. с исх. Xml-дер.')
        self._frBtnLstFrame_ = self.getSubWgts(self.btnLstFrame, tk._dummyFrame)
        
        self.varsFrame = tk.Frame(self._frBtnLstFrame_, borderwidth=2, bg = 'blue')
        self.vrSPathFrame = tk.Label(self.varsFrame)
        self.vrFnameFrame = tk.Label(self.varsFrame)
        self.vrUnqFNmFrame = tk.Label(self.varsFrame)
        #self.vrPileCllctnFrame = tk.Label(self.varsFrame)
        self.vrRestreFNmFrame = tk.Label(self.varsFrame)
        
        self._btnLstFrame_ = tk.Frame(self._frBtnLstFrame_, borderwidth = 2)
        
        self.btCatchJMXFiles = tk.Button(self._btnLstFrame_, text="Собрать все \n.jmx файлы", fg="green")
        
	#self.btCatchJMXFiles.config(command = self.testFrame)
        self.btCatchJMXFiles.config(command = self.prcdCatchJMXFiles)
        self.btCatchJMXFiles.config(relief='raised')
        self.btCatchJMXFiles.pack(fill = 'x')
        #self.jmscdObj.setFName = 'toParce.jmx'

        self.btGetJMXMkTree = tk.Button(self._btnLstFrame_, text="Получить дерево из \n.jmx файла", fg="green")
        self.btGetJMXMkTree.config(command = self.prcdGetJMXMkTree)
        self.btGetJMXMkTree.config(relief='raised')
        self.btGetJMXMkTree.pack(fill = 'x')
        
        self.btTreeUnqNms = tk.Button(self._btnLstFrame_, text="Сген. колл. \nс уник. именами")
        self.btTreeUnqNms.config(command = self.prcdTreeUnqNms)
        self.btTreeUnqNms.config(relief='raised', state = tk.DISABLED)
        self.btTreeUnqNms.pack(fill = 'x')
        
        self.btRstrOrigNms = tk.Button(self._btnLstFrame_, text="Восст. ориг. имена\nдля получен. колл.")
        self.btRstrOrigNms.config(command = self.prcdRstrOrigNms)
        self.btRstrOrigNms.config(relief='raised')
        self.btRstrOrigNms.pack(fill = 'x')
        
        self.vrSPathLabel = tk.Label(self.vrSPathFrame)
        self.vrSPathValue = tk.Entry(self.vrSPathFrame, bg='white')
        self.vrSPathLabel.config(text='Каталог с (*.jmx)  файл.:', justify = tk.LEFT)
        self.vrSPathValue.config(justify = tk.LEFT)
        self.vrSPathValue.insert(0, self.jmscdObj.setPATH)
        self.vrSPathLabel.pack(side = tk.LEFT)
        self.vrSPathValue.pack(side = tk.LEFT)
        self.vrSPathFrame.pack(side = tk.TOP)
        
        self.vrFnameLabel = tk.Label(self.vrFnameFrame)
        self.vrFnameValue = tk.Entry(self.vrFnameFrame, bg='white')
        self.vrFnameLabel.config(text='Файл(*.jmx) для парам.:', justify = tk.LEFT)
        self.vrFnameValue.config(justify = tk.LEFT)
        self.vrFnameValue.insert(0, self.jmscdObj.setFName)
        self.vrFnameLabel.pack(side = tk.LEFT)
        self.vrFnameValue.pack(side = tk.LEFT)
        self.vrFnameFrame.pack(side=tk.TOP)
        
        self.vrUnqFNmLabel = tk.Label(self.vrUnqFNmFrame)
        self.vrUnqFNmValue = tk.Entry(self.vrUnqFNmFrame, bg = 'white')
        self.vrUnqFNmLabel.config(text='Файл(*.jmx), униф. элм.:', justify = tk.LEFT)
        self.vrUnqFNmValue.config(justify = tk.LEFT)
        self.vrUnqFNmValue.insert(0, self.jmscdObj.outFileUniqueNames)
        self.vrUnqFNmLabel.pack(side = tk.LEFT)
        self.vrUnqFNmValue.pack(side = tk.LEFT)
        self.vrUnqFNmFrame.pack(side=tk.TOP)
        
        self.vrRestreFNmLabel = tk.Label(self.vrRestreFNmFrame)
        self.vrRestreFNmValue = tk.Entry(self.vrRestreFNmFrame, bg = 'white')
        self.vrRestreFNmLabel.config(text='Файл(*.jmx), восcт. элм.:', justify = tk.LEFT)
        self.vrRestreFNmValue.config(justify = tk.LEFT)
        self.vrRestreFNmValue.insert(0, self.jmscdObj.outFileRestrdOrig)
        self.vrRestreFNmLabel.pack(side = tk.LEFT)
        self.vrRestreFNmValue.pack(side = tk.LEFT)
        self.vrRestreFNmFrame.pack(side=tk.TOP)
        
        self._btnLstFrame_.pack(side = tk.TOP)
        self.varsFrame.pack(side=tk.TOP)
        ##
        
        
        self.frPileOptns = tk.LabelFrame(self.mCllctnFrame)
        self._lbFrPileOptns_ = self.getSubWgts(self.frPileOptns, tk._dummyLabel)
        self._lbFrPileOptns_.config(text = 'Получ. осн. колл.')
        self._frPileOptns_ = self.getSubWgts(self.frPileOptns, tk._dummyFrame)
        self.scrollPileMCllt = tk.Scrollbar(self._frPileOptns_, orient = tk.VERTICAL)
        self.scrollPileMCllt.pack(side = tk.RIGHT, fill = 'y')
        self.lsbxPileMCllct = tk.Listbox(self._frPileOptns_, height = 4, width = 34, yscrollcommand = self.scrollPileMCllt.set)

        for itm in range(4):
            self.lsbxPileMCllct.insert(tk.END, '--')
            
        self.btPileMCllct = tk.Button(self._frPileOptns_, text="Аккумул. раб. коллекц.")
        self.btPileMCllct.config(command = self.prcdPileMCllct, relief='groove')
        self.lsbxPileMCllct.pack(side = tk.TOP)
        self.btPileMCllct.pack(side = tk.TOP)
        self.frPileOptns.pack(side = tk.LEFT)
        
        self.scrollPileMCllt.config(command = self.lsbxPileMCllct.yview)
        
        self.frOutRslts = tk.LabelFrame(self.mCllctnFrame)
        self._lbFrOutRslts_ = self.getSubWgts(self.frOutRslts, tk._dummyLabel)
        self._lbFrOutRslts_.config(text = 'Текущ. знач.')
        self._frOutRslts_ = self.getSubWgts(self.frOutRslts, tk._dummyFrame)
        self.entStrVar = tk.StringVar(self._frOutRslts_)
        #self.entStrVar.set(self.jmscdObj.entityNames[2]) # default value
        self.lstWrkEnts = tk.OptionMenu(self._frOutRslts_, variable = self.entStrVar)
        for ent in self.jmscdObj.entityNames:
            self.lstWrkEnts.add_command(ent)
        self.entStrVar.set(self.jmscdObj.entityNames[2])
        #self.lstWrkEnts = tk.Listbox(self.mCllctnFrame)
        
        ##Опция выбора сущности на данный момент выключена
        ####self.lstWrkEnts.pack(side = tk.TOP)
        self.tstOutText = tk.Text(self._frOutRslts_, state = tk.DISABLED, bg='#FFEFD5')#, width=64)
        self.tstOutText.pack(side = tk.TOP)
        self.txtWdgtDelete(False)
        self.txtWdgtInsert(self._initText_)
        #
        self.frWrInfExtCntrlElm = tk.Frame(self._frOutRslts_)
        self.btWriteChngsToF = tk.Button(self.frWrInfExtCntrlElm, text='Запис. изм.\nв файл')
        self.btWriteChngsToF.config(command = self.prcdWrtXmlTree)
        self.btUpdateXMLTree = tk.Button(self.frWrInfExtCntrlElm, text='Обнов. \nxml-дерево')
        self.btUpdateXMLTree.config(command = self.prcdUpdtXMLTree, state = tk.DISABLED)
        self.btUpdateXMLTree.pack(side = tk.LEFT)
        self.btWriteChngsToF.pack(side = tk.LEFT)
        self.frWrInfExtCntrlElm.pack(side = tk.BOTTOM)
        #
        self.frOutRslts.pack(side = tk.LEFT)

        ###
        
        self.frGetCollctnData = tk.Frame(self.mCllctnFrame)
        #
        self.frGetListKeys = tk.LabelFrame(self.frGetCollctnData)
        self._frGetListKeys_ = self.getSubWgts(self.frGetListKeys, tk._dummyFrame)
        self.frBtGetLstKeys = tk.Frame(self._frGetListKeys_)
        self.btGetListKeys = tk.Button(self.frBtGetLstKeys, text="Список получ. ключей:")
        self.varRBtLstKeys = tk.IntVar()
        self.varRBtLstKeys.set(1)
        self.rBtLstKeysPrms = tk.Radiobutton(self.frBtGetLstKeys, text = 'Парам. ', variable = self.varRBtLstKeys, value = 1)
        self.rBtLstKeysLnks = tk.Radiobutton(self.frBtGetLstKeys, text = 'Ссылки', variable = self.varRBtLstKeys, value = 2)
        self.btGetListKeys.config(relief='groove')
        self.btGetListKeys.config(command = self.prcdfGetListKeys)
        self._lbGetListKeys_ = self.getSubWgts(self.frGetListKeys, tk._dummyLabel)
        self._lbGetListKeys_.config(text = 'Раб. с осн. коллекц.')
        self.frBtGetLstKeys.pack(side = tk.TOP, anchor = tk.W)
        self.btGetListKeys.pack(side = tk.LEFT)
        self.rBtLstKeysPrms.pack(side = tk.TOP, anchor = tk.E)
        self.rBtLstKeysLnks.pack(side = tk.TOP, anchor = tk.E)
        self.frGetListKeys.pack(side = tk.TOP, fill = 'x')
        #
        self.frGetDictData = tk.Frame(self._frGetListKeys_)
        self.frGetDictData.config(borderwidth = 2, bg = 'green')
        ##
        self.frGetDataDictItem = tk.Frame(self.frGetDictData)
        self.vlGetDataDictItem = tk.Entry(self.frGetDataDictItem, bg='white')
        self.vlGetDataDictItem.insert(0, '<знач.ключа>')
        self.btGetDataDictItem = tk.Button(self.frGetDataDictItem, text="Все знач.\nпо задан. ключу:")
        self.btGetDataDictItem.config(command = self.prcdGetDataDictItem)
        self.btGetDataDictItem.config(relief='groove')
        self.btGetDataDictItem.pack(side= tk.LEFT)
        self.vlGetDataDictItem.pack(side = tk.RIGHT, fill = 'y')
        self.frGetDataDictItem.pack(side = tk.TOP)
        ##
        self.frGetScrLstByNm = tk.Frame(self.frGetDictData)
        self.btGetScrLstByNm = tk.Button(self.frGetScrLstByNm, text="Все контрлр.\nпо задан. ключу:")
        self.btGetScrLstByNm.config(command = self.prcdGetScrLstByNm)
        self.btGetScrLstByNm.config(relief='groove')
        self.vlGetScrLstByNm = tk.Entry(self.frGetScrLstByNm, bg='white')
        self.vlGetScrLstByNm.insert(0, '<знач.ключа>')
        self.chkBtVar = tk.BooleanVar(self.frGetScrLstByNm)
        self.chkBtVar.set(False)
        self.chkGetScrLstByNm = tk.Checkbutton(self.frGetScrLstByNm, text='Вывод сэмплр.', variable=self.chkBtVar)
        self.btGetScrLstByNm.pack(side= tk.LEFT)
        self.vlGetScrLstByNm.pack(side = tk.TOP)
        self.chkGetScrLstByNm.pack(side = tk.LEFT)
        self.frGetScrLstByNm.pack(side = tk.TOP)
        ##
        self.frGetScrFncByKeyVal = tk.Frame(self.frGetDictData)
        self.btGetScrFncByKeyVal = tk.Button(self.frGetScrFncByKeyVal, text="Все контрлр.\nпо  паре  кл.-зн.:")
        self.btGetScrFncByKeyVal.config(command = self.prcdGetScrFncByKeyVal)
        self.btGetScrFncByKeyVal.config(relief='groove')
        self.vlGetScrFncByKeyVal = tk.Entry(self.frGetScrFncByKeyVal, bg='white')
        self.vlGetScrFncByKeyVal.insert(0, '<знач.ключа>')
        self.vrGetScrFncByKeyVal = tk.Entry(self.frGetScrFncByKeyVal, bg='white')
        self.vrGetScrFncByKeyVal.insert(0, '<знач.парам.>')
        self.chkKeyVlVar = tk.BooleanVar(self.frGetScrFncByKeyVal)
        self.chkKeyVlVar.set(False)
        self.chkGetScrFncByKeyVal = tk.Checkbutton(self.frGetScrFncByKeyVal, text='Вывод сэмплр.', variable=self.chkKeyVlVar)
        self.btGetScrFncByKeyVal.pack(side= tk.LEFT, fill='y')
        self.vlGetScrFncByKeyVal.pack(side = tk.TOP)
        self.vrGetScrFncByKeyVal.pack(side = tk.TOP)
        self.chkGetScrFncByKeyVal.pack(side = tk.LEFT)
        self.frGetScrFncByKeyVal.pack(side = tk.TOP, fill='x')
        ##
        self.frGetValByKSF = tk.Frame(self.frGetDictData)
        self.frGetValByKSF.config(borderwidth = 1, bg = 'red')
        self.blnMsg = tk.Balloon(self.frGetValByKSF, initwait = 350, bg='yellow')
        self.blnMsgText = 'Внимание!\nНазвания контроллеров и сэмплеров (возможно) были изменены,\nследует сверять в jmeter по файлу "(*.jmx) униф. эл"'
        self.blnMsg.bind_widget(self.frGetValByKSF, msg = self.blnMsgText)
        self.btGetValByKSF = tk.Button(self.frGetValByKSF, text="Значен. для\n кл.-кнтр.-смпл.:")
        self.btGetValByKSF.config(command = self.prcdGetValByKSF)
        self.btGetValByKSF.config(relief='groove')
        self.vlGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.vlGetValByKSF.insert(0, '<знач.ключа>')
        self.ctGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.ctGetValByKSF.insert(0, '<назв. контрлр.>')
        self.smGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.smGetValByKSF.insert(0, '<назв. сэмплр.>')
        self.btGetValByKSF.pack(side= tk.LEFT, fill='y')
        self.vlGetValByKSF.pack(side = tk.TOP)
        self.ctGetValByKSF.pack(side = tk.TOP)
        self.smGetValByKSF.pack(side = tk.TOP)
        self.frGetValByKSF.pack(side = tk.TOP, fill='x')
        ##
        self.frSetValsToSlctn = tk.Frame(self._frGetListKeys_, pady = 2)
        self.btSetValsToSlctn = tk.Button(self.frSetValsToSlctn, text = 'Установ.\n для дан.\n элемен.\n словар.')
        self.btSetValsToSlctn.config(command = self.prcdSetValsToSlctn, state = tk.DISABLED, relief = "groove")
        self.lblSetValsToSlctn = tk.Label(self.frSetValsToSlctn, text = ' <==> ')
        self.entSetValsToSlctn = tk.Entry(self.frSetValsToSlctn, bg='white')
        self.entSetValsToSlctn.insert(0, '*новое знач.*')
        self.btSetValsToSlctn.pack(side = tk.LEFT, anchor=tk.W)
        self.lblSetValsToSlctn.pack(side = tk.LEFT)
        self.entSetValsToSlctn.pack(side = tk.RIGHT, anchor=tk.E)
        ###
        self.frGetDictData.pack(side = tk.TOP)
        self.frSetValsToSlctn.pack(side = tk.TOP, anchor = tk.W)
        #
        self.frGetCollctnData.pack(side = tk.LEFT)

        #for lstEntr in self.jmscdObj.entityNames:
        #    self.lstWrkEnts.insert(tk.END, lstEntr)
        
        self.fsFrame.pack(side="top", fill='x')
        self.mCllctnFrame.pack(side=tk.LEFT, fill='x')
        ##self.loadFrame.pack(side="top", fill='x')
        self.smplUnqOptFrame.pack(side = tk.RIGHT, anchor = tk.E)
        self.btnLstFrame.pack(side = tk.RIGHT)
        self.paramVolatilFrame.pack(side = tk.RIGHT)
        self.topElemsFrame.pack(side="top", fill='y')
Пример #24
0
nb = tix.NoteBook(top, width=300, height=300)
nb.pack(expand=True, fill="both")

nb.add("Page1", label="Text")
frame1 = tix.Frame(nb.subwidget("page1"))
st = tix.ScrolledText(frame1)
st.subwidget("text").insert("1.0", "Type text here...")
st.pack(expand=True)
frame1.pack()

nb.add("Page2", label="Message boxes")
frame2 = tix.Frame(nb.subwidget("page2"))

tix.Button(frame2,
           text="Error",
           bg="red",
           command=lambda t="error", m="This is bad": mb.showerror(t, m)).pack(
               fill="x", expand=True)

tix.Button(
    frame2,
    text="Info",
    bg="lightblue",
    command=lambda t="info", m="Some Information": mb.showinfo(t, m)).pack(
        fill="x", expand=True)

tix.Button(frame2,
           text="Warning",
           bg="yellow",
           command=lambda t="warning", m="Shtsksm": mb.showwarning(t, m)).pack(
               fill="x", expand=True)
Пример #25
0
 def add_command(self, *, label=None, balloonmsg=None, statusmsg=None, **kwargs):
     widget = tk.Button(self, text=label, **kwargs)
     widget.pack(side=tk.LEFT, fill=tk.Y)
     if self.tip:
         self.tip.bind_widget(widget, balloonmsg=balloonmsg, statusmsg=statusmsg)
Пример #26
0
from tkinter import tix as tkinter
from tkinter import ttk

root = tkinter.Tk()
notebook = ttk.Notebook(root)
notebook.pack(expand=True, fill="both", side=tkinter.LEFT)

for info in ["Title 1", "Title 2", "Title 3"]:
    tab = tkinter.Frame()
    notebook.add(tab, text=info)
    tkinter.Text(tab).pack()

#buttons
buttonFrame = tkinter.Frame()
buttonFrame.pack(side=tkinter.RIGHT, fill="y")
for text in ["thing 1", "thing 2", "thing 3"]:
    b = tkinter.Button(buttonFrame, text=text)
    b.pack()
Пример #27
0
            linenum = str(i).split(".")[0]
            self.lineNumbers.create_text(2, y, anchor="nw", text=linenum)
            i = self.text.index("%s+1line" % i)

    def _highlightLine(self, event=None):
        '''highlights the cursor's line in text widget'''
        self.text.tag_remove("Current Line", "1.0", tkinter.END)
        if self.text.tag_ranges("sel") == ():
            self.text.tag_add("Current Line", "insert linestart",
                              "insert lineend+1c")
        else:
            self.text.tag_add("Current Line", "insert linestart",
                              "insert lineend+1c")
            ranges = self.text.tag_ranges("sel")
            self.text.tag_remove("Current Line", ranges[0], ranges[1])


if __name__ == "__main__":
    '''test'''
    root = tkinter.Tk()
    root.title("CodePack Example")
    CodePack = CodePack(root, language="Python")
    CodePack.pack()

    def output():
        print(CodePack.text.get("1.0", "end -1c"))

    button = tkinter.Button(root, text="print", command=output)
    button.pack()
    root.mainloop()
Radio2.place(x=780, y=225)
#labelValue = Label(fenetre, textvariable=Aspect)
#labelValue.pack()


# Check Box #
#############
Check_Box = Checkbutton(fenetre, variable = EtatCheck_Box, text='Encodage Vidéo automatique ',font='Monospace 12 bold',bg='slate gray',activebackground='slate gray',activeforeground='lime green',highlightbackground='lime green',highlightthickness=2)
Check_Box.pack(anchor='w', padx=10)
Check_Box.place(x=600, y=328)
Check_Box.select()


# Boutons #
###########
Bouton_RomPath = tix.Button(fenetre,text="Choisir une ROM",font='Monospace 16 bold',borderwidth=3,bg='light gray',activeforeground='lime green',command=RomsFile)
Bouton_RomPath.pack()
Bouton_RomPath.place(x=90, y=120)
#Bouton_RomPath.configure(state='disabled')
Bouton_RomPath.configure(state='normal')
#bulle_RomPath = tix.Balloon(fenetre)
#bulle_RomPath.bind_widget(Bouton_RomPath, msg='click me 1!')

Bouton_InpPath = tix.Button(fenetre,text="Choisir un inp",font='Monospace 16 bold',borderwidth=3,bg='light gray',activeforeground='lime green',command=InpFile)
Bouton_InpPath.pack()
Bouton_InpPath.place(x=90, y=170)
Bouton_InpPath.configure(state='disabled')
#Bouton_InpPath.configure(state='normal')
#bulle_InpPath = tix.Balloon(fenetre)
#bulle_InpPath.bind_widget(Bouton_InpPath, msg='click me 2!')
Пример #29
0
        'title': 'N',
        'summary': '''\
summary of N
very very very long long long long summary
0
1
2
3
4
5
6
:
a''',
        'content': 32
    }]

    top = tix.Toplevel()
    d = matdb_frame.MatDBFrame(top, entries)
    d.grid(row=0, column=0, sticky=tix.N + tix.E + tix.S + tix.W)
    top.rowconfigure(0, weight=1)
    top.columnconfigure(0, weight=1)

    def c():
        print(d.get_current_selection())

    tix.Button(app, text='get value', command=c).pack()

    top.wait_window()

    app.mainloop()
Пример #30
0
    def createWidgets(self):
        ## Tix tix for python 3
        if (pythVers < 3):
            self.nb = Tix.NoteBook(self)
        else:
            self.nb = tix.NoteBook(self)
        self.nb.add('appr',
                    label='APPR',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('cruz',
                    label='CRSE',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('wing',
                    label='WING',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('hstb',
                    label='HSTB',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('vstb',
                    label='VSTB',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('ball',
                    label='BALL',
                    raisecmd=lambda self=self: self.update_page())
        self.nb.add('prop',
                    label='PROP',
                    raisecmd=lambda self=self: self.update_page())
        #
        page = PropertyPage(self.nb.appr)
        self.pages['appr'] = page
        page.addField(Va, 'ApprSpd:')
        page.addField(Aa, 'ApprAoA:')
        page.addField(Ka, 'ApprFuel:')
        page.addField(Ra, 'ApprThrt:')
        page.addField(Fa, 'ApprFlap:')
        page.addField(Vy, 'SolveAtSpd:')
        page.addField(Hy, 'SolveAtAlt:')
        #
        page = PropertyPage(self.nb.cruz)
        self.pages['cruz'] = page
        page.addField(Vc, 'CruiseSpd:')
        page.addField(Hc, 'CruiseAlt:')
        page.addField(Kc, 'CruiseFuel:')
        page.addField(Rc, 'CruiseThrt:')
        #
        page = PropertyPage(self.nb.wing)
        self.pages['wing'] = page
        page.addField(Cw, 'WingCambr:')
        page.addField(Iw, 'WingIDrag:')
        page.addField(Aw, 'WingStAoA:')
        page.addField(Ww, 'WingStWid:')
        page.addField(Pw, 'WingStlPk:')
        page.addField(Lf, 'WFlapLift:')
        page.addField(Df, 'WFlapDrag:')
        page.addField(Lr, 'AilrnLift:')
        page.addField(Dr, 'AilrnDrag:')
        #
        page = PropertyPage(self.nb.hstb)
        self.pages['hstb'] = page
        page.addField(Ch, 'HstbCambr:')
        page.addField(Ih, 'HstbIDrag:')
        page.addField(Ah, 'HstbStAoA:')
        page.addField(Wh, 'HstbStWid:')
        page.addField(Ph, 'HstbStlPk:')
        page.addField(Lh, 'HFlapLift:')
        page.addField(Dh, 'HFlapDrag:')
        #
        page = PropertyPage(self.nb.vstb)
        self.pages['vstb'] = page
        page.addField(Cv, 'VstbCambr:')
        page.addField(Iv, 'VstbIDrag:')
        page.addField(Av, 'VstbStAoA:')
        page.addField(Wv, 'VstbStWid:')
        page.addField(Pv, 'VstbStlPk:')
        page.addField(Lv, 'VFlapLift:')
        page.addField(Dv, 'VFlapDrag:')
        #
        page = PropertyPage(self.nb.ball)
        self.pages['ball'] = page
        page.addField(Mb, 'BallMass :')
        page.addField(Xb, 'BallXloc :')
        page.addField(Yb, 'BallYloc :')
        page.addField(Zb, 'BallZloc :')
        #
        page = PropertyPage(self.nb.prop)
        self.pages['prop'] = page
        page.addField(Mp, 'PropMass :')
        page.addField(Rp, 'PropRadi :')
        page.addField(Ap, 'PropMomt :')
        page.addField(Np, 'PropMinR :')
        page.addField(Xp, 'PropMaxR :')
        page.addField(Ip, 'PropFine :')
        page.addField(Op, 'PropCoar :')
        page.addField(Vp, 'PropCSpd :')
        page.addField(Cp, 'PropCRpm :')
        page.addField(Tp, 'PropTRpm :')
        #
        ## Tix tix for python 3
        if (pythVers < 3):
            self.nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5, side=Tix.TOP)
        else:
            self.nb.pack(expand=1, fill=tix.BOTH, padx=5, pady=5, side=tix.TOP)

        ## Tix tix for python 3
        if (pythVers < 3):
            self.QUIT = Tix.Button(self)
        else:
            self.QUIT = tix.Button(self)
        self.QUIT['text'] = 'Quit'
        self.QUIT['command'] = self.quitCmd
        self.QUIT.pack({"side": "right"})

        ## Tix tix for python 3
        if (pythVers < 3):
            self.PLOT = Tix.Button(self)
        else:
            self.PLOT = tix.Button(self)
        self.PLOT['text'] = 'Plot'
        self.PLOT['command'] = self.plotCmd
        self.PLOT.pack({"side": "left"})