示例#1
0
    def initUIFrame(self):
        self.frame0.columnconfigure(0, pad=5, weight=1)
        self.frame0.columnconfigure(1, pad=5, weight=1)
        self.frame0.columnconfigure(2, pad=5, weight=1)
        self.frame0.columnconfigure(3, pad=5, weight=1)
        self.frame0.columnconfigure(4, pad=5, weight=1)
        self.frame0.columnconfigure(5, pad=5, weight=1)
        self.frame0.rowconfigure(0, pad=37)
        self.frame0.rowconfigure(1, pad=7)
        self.frame0.rowconfigure(2, pad=7, weight=1)
        titleImg = ImageTk.PhotoImage(file="./imgs/title.png")
        catImg = ImageTk.PhotoImage(file="./imgs/cat.png")
        preImg = ImageTk.PhotoImage(file="./imgs/pre.png")
        chartImg = ImageTk.PhotoImage(file="./imgs/chart.png")
        bestImg = ImageTk.PhotoImage(file="./imgs/bestPoint.png")
        rareImg = ImageTk.PhotoImage(file="./imgs/rare.png")

        lbl = Label(self.frame0, image=titleImg)
        lbl.grid(row=0, column=1,columnspan=5,sticky=S+W)
        lbl.image = titleImg
        lbl = Label(self.frame0, image=rareImg)
        lbl.grid(row=3, column=1,columnspan=5,sticky=S)
        lbl.image = rareImg
        preButton = Button(self.frame0, command=self.onNewPre)
        preButton.config(image=preImg)
        preButton.image = preImg
        preButton.grid(row=1, column=2)
        cateButton = Button(self.frame0, command=self.onNewCata)
        cateButton.config(image=catImg)
        cateButton.image = catImg
        cateButton.grid(row=1, column=1)
        chartButton = Button(self.frame0, command=self.onNewGraph)
        chartButton.config(image=chartImg)
        chartButton.image = chartImg
        chartButton.grid(row=1, column=3)
        chartButton = Button(self.frame0, command=self.onNewBest)
        chartButton.config(image=bestImg)
        chartButton.image = bestImg
        chartButton.grid(row=1, column=4)

        lbl = Label(self.frame0, text="新建催化剂")
        lbl.grid(row=2, column=1, sticky=N)
        lbl = Label(self.frame0, text="精确预测")
        lbl.grid(row=2, column=2, sticky=N)
        lbl = Label(self.frame0, text="趋势预测")
        lbl.grid(row=2, column=3, sticky=N)
        lbl = Label(self.frame0, text="最优条件预测")
        lbl.grid(row=2, column=4, sticky=N)
    def addButtonI(self, dim=(0, 0, 206, 109), x=0, y=0, command=0):
        try:
            crop = self.__texture[0].crop(dim)
            render = ImageTk.PhotoImage(crop)
            nbutton = Button(self,
                             image=render,
                             bg="#4a4a4a",
                             borderwidth=0,
                             activebackground="#4d86a1")
            nbutton.image = render
            nbutton.place(x=x, y=y)
            self.__list_button.append(nbutton)
            if command == 1:
                nbutton.configure(command=self.showOne)
            elif command == 2:
                nbutton.configure(command=self.showAll)
            elif command == 3:
                pass
            elif command == 4:
                nbutton.configure(command=self.master.destroy)

            return nbutton
        except Exception as e:
            self.Error("Error al cargar Texturas")
            return -1
示例#3
0
    def initUI(self):

        self.parent.title("Toolbar")

        menubar = Menu(self.parent)
        self.fileMenu = Menu(self.parent, tearoff=0)
        self.fileMenu.add_command(label="Exit", command=self.onExit)
        menubar.add_cascade(label="File", menu=self.fileMenu)

        toolbar = Frame(self.parent, bd=1, relief=RAISED)

        self.img = Image.open(IMG_DIR + "exit.png")
        cropped = self.img.resize((25, 25), Image.ANTIALIAS)
        eimg = ImageTk.PhotoImage(cropped)

        exitButton = Button(toolbar,
                            image=eimg,
                            relief=FLAT,
                            command=self.quit)
        exitButton.image = eimg
        exitButton.pack(side=LEFT, padx=2, pady=2)

        toolbar.pack(side=TOP, fill=X)
        self.parent.config(menu=menubar)
        self.pack()
示例#4
0
    def initToolbar(self):
        toolbar = Frame(self.parent, relief=FLAT, background="MediumTurquoise")

        img = Image.open("Graphics/Icons/saveIcon.png")
        saveImg1 = ImageTk.PhotoImage(img)  
        self.saveLevelButton = Button(toolbar, image=saveImg1, relief=FLAT, background="Turquoise",
                                      activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.save)
        self.saveLevelButton.image = saveImg1
        self.saveLevelButton.grid(row=0, column=0)

        img = Image.open("Graphics/Icons/loadIcon.png")
        loadImg = ImageTk.PhotoImage(img)  
        self.loadButton = Button(toolbar, image=loadImg, relief=FLAT, background="Turquoise",
                                 activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.load)
        self.loadButton.image = loadImg
        self.loadButton.grid(row=0, column=1)

        img = Image.open("Graphics/Icons/checkIcon.png")
        checkImg = ImageTk.PhotoImage(img)  
        self.checkButton = Button(toolbar, image=checkImg, relief=FLAT, background="Turquoise",
                                  activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.checkCode)
        self.checkButton.image = checkImg
        self.checkButton.grid(row=0, column=2)

        img = Image.open("Graphics/Icons/runIcon.png")
        runImg = ImageTk.PhotoImage(img)  
        self.runButton = Button(toolbar, image=runImg, relief=FLAT, background="Turquoise", state=DISABLED,
                                activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.run)
        self.runButton.image = runImg
        self.runButton.grid(row=0, column=3)

        img = Image.open("Graphics/Icons/prevLevelIcon.png")
        prevLevelImg = ImageTk.PhotoImage(img)  
        self.prevLevelButton = Button(toolbar, image=prevLevelImg, relief=FLAT, background="Turquoise", state=DISABLED,
                                 activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.prevLevel)
        self.prevLevelButton.image = prevLevelImg
        self.prevLevelButton.grid(row=0, column=4)

        img = Image.open("Graphics/Icons/nextLevelIcon.png")
        nextLevelImg = ImageTk.PhotoImage(img)  
        self.nextLevelButton = Button(toolbar, image=nextLevelImg, relief=FLAT, background="Turquoise", state=DISABLED,
                                 activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.nextLevel)
        self.nextLevelButton.image = nextLevelImg
        self.nextLevelButton.grid(row=0, column=5)

        img = Image.open("Graphics/Icons/quitIcon.png")
        quitImg = ImageTk.PhotoImage(img)  
        quitButton = Button(toolbar, image=quitImg, relief=FLAT, background="Turquoise",
                            activebackground="yellow", width=BUTTON_X, height=BUTTON_Y, command=self.exit)
        quitButton.image = quitImg
        quitButton.grid(row=0, column=7, sticky=E)

        toolbar.pack(side=TOP, fill=X)
示例#5
0
    def connect_events(self):

        toolbar_icons = [
            ("document-new", self.new_file),
            ("document-open", self.open_file),
            ("document-save", self.save_file),
            ("separator", None),
            ("edit-undo", self.edit_undo),
            ("edit-redo", self.edit_redo),
            ("separator", None),
            ("edit-cut", self.edit_cut),
            ("edit-copy", self.edit_copy),
            ("edit-paste", self.edit_paste),
            ("separator", None),

            #("edit-find", self.new_file),
            #("edit-find-replace", self.new_file),

            #("separator", None),
            ("applications-electronics", self.__show_board_config__),
            ("system-run", self.pinguino_compile),
            ("emblem-downloads", self.pinguino_upload),
        ]

        for icon, function in toolbar_icons:

            if icon == "separator":
                frame = Frame(self.toolBar, width=10)
                frame.pack(side=LEFT, fill=Y, padx=2, pady=2)

            else:
                icon = os.path.join("tkgui", "resources", "themes",
                                    "pinguino11", "icons", "24", icon + ".png")
                #eimg = ImageTk.PhotoImage(Image.open(icon))
                eimg = ImageTk.PhotoImage(file=icon)

                button = Button(self.toolBar,
                                image=eimg,
                                relief=FLAT,
                                command=function,
                                borderwidth=0,
                                highlightthickness=0)
                button.image = eimg
                button.pack(side=LEFT, padx=2, pady=4)
示例#6
0
    def connect_events(self):

        toolbar_icons = [("document-new", self.new_file),
                        ("document-open", self.open_file),
                        ("document-save", self.save_file),

                        ("separator", None),

                        ("edit-undo", self.edit_undo),
                        ("edit-redo", self.edit_redo),

                        ("separator", None),

                        ("edit-cut", self.edit_cut),
                        ("edit-copy", self.edit_copy),
                        ("edit-paste", self.edit_paste),

                        ("separator", None),

                        #("edit-find", self.new_file),
                        #("edit-find-replace", self.new_file),

                        #("separator", None),

                        ("applications-electronics", self.__show_board_config__),
                        ("system-run", self.pinguino_compile),
                        ("emblem-downloads", self.pinguino_upload),
                        ]

        for icon, function in toolbar_icons:

            if icon == "separator":
                frame = Frame(self.toolBar, width=10)
                frame.pack(side=LEFT, fill=Y, padx=2, pady=2)

            else:
                icon = os.path.join("tkgui", "resources", "themes", "pinguino11", "icons", "24", icon+".png")
                #eimg = ImageTk.PhotoImage(Image.open(icon))
                eimg = ImageTk.PhotoImage(file=icon)

                button = Button(self.toolBar, image=eimg, relief=FLAT, command=function, borderwidth=0, highlightthickness=0)
                button.image = eimg
                button.pack(side=LEFT, padx=2, pady=4)
def initGameStateBtns(root, canvas): # Inits buttons to do with game state
    buttonImg = canvas.data.imageDict["buttonImage"]
    startGameBtn = Button(image=buttonImg,command =lambda: redrawGame(canvas))
    startGameBtn.image = buttonImg # PLAY BUTTON
    canvas.data.startGameBtn = startGameBtn 
    restartBtn = Button(text="MAIN MENU",command=lambda:comboFunc(root,canvas))
    restartBtn.configure(width = 12)
    canvas.data.restartBtn = restartBtn # RESTART
    Style().configure('red.TButton', foreground='red')
    quitBtn = Button(text = "QUIT", style='red.TButton', command = quit)
    quitBtn.configure(width = 5)
    canvas.data.quitBtn = quitBtn # QUIT
    pauseBtn = Button(text = "PAUSE", style='red.TButton',
                    command = lambda: pauseResumeTrigger(canvas))
    pauseBtn.configure(width = 12)
    canvas.data.pauseBtn = pauseBtn # PAUSE
    resumeBtn = Button(text = "RESUME", style='red.TButton',
                    command=lambda: pauseResumeTrigger(canvas))
    resumeBtn.configure(width = 30) 
    canvas.data.resumeBtn = resumeBtn # RESUME
示例#8
0
    def initUI(self):
        self.parent.title("Toolbar")

        menubar = Menu(self.parent)
        self.fileMenu = Menu(self.parent, tearoff=0)
        self.fileMenu.add_command(label="Exit", command=self.onExit)
        menubar.add_cascade(label="File", menu=self.fileMenu)

        toolbar = Frame(self.parent, bd=1, relief=RAISED)

        self.img = Image.open("./img/exit.png")
        eimg = ImageTk.PhotoImage(self.img)

        exitButton = Button(toolbar, image=eimg, relief=FLAT, command=self.quit)
        exitButton.image = eimg
        exitButton.pack(side=LEFT, padx=2, pady=2)

        toolbar.pack(side=TOP, fill=X)
        self.parent.config(menu=menubar)
        self.pack()
    def showOne(self):

        Ventana2 = Toplevel(self.master)
        try:
            Ventana2.configure(height=210, width=428, bg="#FFFFFF")
            Ventana2.resizable(1, 1)
            Ventana2.title("Buscar")

            frameAux = Frame(Ventana2, height=210, width=428, bg="#4a4a4a")
            frameAux.place(x=0, y=0)

            if sys.platform.startswith('win32'):
                r = "image\\BuscarBosch.png"
                ruta = "image\\Back.png"
                ruta2 = "image\\SearchOne.png"

            elif sys.platform.startswith('linux') or sys.platform.startswith(
                    'darwin'):
                r = "image/BuscarBosch.png"
                ruta = "image/Back.png"
                ruta2 = "image/SearchOne.png"

            l = Image.open(r)
            re = ImageTk.PhotoImage(l)
            labelFont = Label(frameAux, image=re, borderwidth=0)
            labelFont.image = re
            labelFont.place(x=0, y=0)

            labelText1 = Label(frameAux,
                               height=1,
                               width=24,
                               bg="#4a4a4a",
                               text="Serie",
                               fg="#FFFFFF",
                               anchor=W)
            labelText1.config(font=("Tahoma", 11))
            labelText1.place(x=15, y=25)
            labelText11 = Label(frameAux,
                                height=1,
                                width=24,
                                bg="#4a4a4a",
                                fg="#FFFFFF",
                                anchor=W)
            labelText11.config(font=("Tahoma", 11))
            labelText11.place(x=210, y=25)

            labelText2 = Label(frameAux,
                               height=1,
                               width=24,
                               bg="#696969",
                               text="Gravedad",
                               fg="#FFFFFF",
                               anchor=W)
            labelText2.config(font=("Tahoma", 11))
            labelText2.place(x=15, y=50)
            labelText22 = Label(frameAux,
                                height=1,
                                width=24,
                                bg="#696969",
                                fg="#FFFFFF",
                                anchor=W)
            labelText22.config(font=("Tahoma", 11))
            labelText22.place(x=210, y=50)

            labelText3 = Label(frameAux,
                               height=1,
                               width=24,
                               bg="#4a4a4a",
                               text="Fecha",
                               fg="#FFFFFF",
                               anchor=W)
            labelText3.config(font=("Tahoma", 11))
            labelText3.place(x=15, y=75)
            labelText33 = Label(frameAux,
                                height=1,
                                width=24,
                                bg="#4a4a4a",
                                fg="#FFFFFF",
                                anchor=W)
            labelText33.config(font=("Tahoma", 11))
            labelText33.place(x=210, y=75)

            labell = Label(frameAux,
                           height=1,
                           width=25,
                           bg="#4a4a4a",
                           text="Ingresa el numero de serie",
                           fg="#FFFFFF",
                           anchor=W)
            #labell.place(x=15,y=135)
            labell.config(font=("Tahoma", 11))

            listbox3 = Entry(frameAux,
                             width=24,
                             justify=RIGHT,
                             bg="#696969",
                             fg="#FFFFFF",
                             borderwidth=0)
            listbox3.place(x=210, y=125)
            listbox3.config(font=("Tahoma", 11))

            load = Image.open(ruta)
            render = ImageTk.PhotoImage(load)
            backbutton = Button(
                frameAux,
                image=render,
                bg="#8d8e8c",
                borderwidth=0,
                activebackground="#696969",
                command=lambda: self.Switch(self.master, Ventana2))
            backbutton.image = render
            backbutton.place(x=245, y=155)
            load2 = Image.open(ruta2)
            render2 = ImageTk.PhotoImage(load2)
            searchButton = Button(
                frameAux,
                image=render2,
                bg="#8d8e8c",
                borderwidth=0,
                activebackground="#c4c4c4",
                command=lambda: self.load1(listbox3, labelText11, labelText22,
                                           labelText33))
            searchButton.image = render2
            searchButton.place(x=324, y=155)
        except Exception as e:
            print(e)
            Ventana2.destroy()
            self.Error("Se produjo un error al cargar")
 def showAll(self):
     Ventana2 = Toplevel(self.master)
     try:
         Poss = [0, 50]
         maxi = self.buscMax()
         if int(maxi) < Poss[1]:
             Poss[1] = int(maxi)
         Ventana2.configure(height=45, width=25, bg="#4a4a4a")
         Ventana2.resizable(0, 0)
         frameAux = Frame(Ventana2, bg="#4a4a4a", borderwidth=0)
         frameAux.pack(fill=BOTH)
         scrolly = Scrollbar(frameAux, orient=VERTICAL)
         self.listbox1 = Listbox(frameAux,
                                 width=90,
                                 background="#4a4a4a",
                                 borderwidth=0,
                                 fg="#FFFFFF",
                                 highlightcolor="#4d86a1",
                                 highlightbackground="#4d86a1",
                                 yscrollcommand=scrolly.set)
         self.listbox1.config(font=("", 11))
         self.listbox1.pack(side=LEFT)
         scrolly.pack(side=RIGHT, fill=Y)
         scrolly.configure(command=self.yview)
         self.load50(Poss)
         if sys.platform.startswith('win32'):
             ruta = "image\\GoBack.png"
             ruta2 = "image\\GoOn.png"
         elif sys.platform.startswith('linux') or sys.platform.startswith(
                 'darwin'):
             ruta = "image/GoBack.png"
             ruta2 = "image/GoOn.png"
         load = Image.open(ruta)
         render = ImageTk.PhotoImage(load)
         load2 = Image.open(ruta2)
         render2 = ImageTk.PhotoImage(load2)
         backbutton1 = Button(Ventana2,
                              image=render,
                              bg="#4a4a4a",
                              borderwidth=0,
                              activebackground="#4d86a1",
                              highlightcolor="#4d86a1",
                              highlightbackground="#4a4a4a",
                              command=lambda: self.load50(Poss, "-"))
         backbutton1.image = render
         backbutton1.pack(side=LEFT)
         backbutton2 = Button(Ventana2,
                              image=render2,
                              bg="#4a4a4a",
                              borderwidth=0,
                              activebackground="#4d86a1",
                              highlightcolor="#4d86a1",
                              highlightbackground="#4a4a4a",
                              command=lambda: self.load50(Poss, "+"))
         backbutton2.image = render2
         backbutton2.pack(side=LEFT)
         backbutton3 = Button(
             Ventana2,
             height=2,
             width=10,
             text="Back",
             command=lambda: self.Switch(self.master, Ventana2))
         backbutton3.pack(side=RIGHT)
     except Exception as e:
         print(e)
         Ventana2.destroy()
         self.Error("Se produjo un error al cargar")
示例#11
0
    def initTextBoxes(self):
        panedWindow = PanedWindow(self.parent, width=DIM_X, height=(DIM_Y - TOOLBAR_Y)/2+5, relief=FLAT)


	# left-hand side: text box for the user to type into, plus a scrollbar
        leftPanel = Frame(panedWindow)
        scrollbar = Scrollbar(leftPanel, orient=VERTICAL)
        self.textEditor = Text(leftPanel, background="PaleTurquoise", width=MAX_CHARS, font=self.customFont2,
                               wrap=WORD, height=(DIM_Y - TOOLBAR_Y)/2, yscrollcommand=scrollbar.set,
                               selectbackground="Turquoise")
        self.textEditor.bind("<<Modified>>", self.textEditorModified)
        self.resettingModifiedFlag = False
	
	# add a scrollbar to the left-hand box
	scrollbar.config(command=self.textEditor.yview)
        scrollbar.pack(side=RIGHT, fill=Y)
        self.textEditor.pack(side=LEFT, fill=BOTH, expand=1)
        panedWindow.add(leftPanel)

	# right hand side: help box, plus buttons to see different help screens
	
	rightPanel = Frame(panedWindow)
	scrollbar1 = Scrollbar(rightPanel, orient=VERTICAL)
	boxPanel = Frame(rightPanel, width=DIM_Y/2, height=DIM_X - 2*TOOLBAR_Y)
        self.helpBox = Text(boxPanel, background="LemonChiffon", font=self.customFont2, selectbackground="Gold",
                            wrap=WORD, height=15, yscrollcommand=scrollbar1.set)
        
        # add a scrollbar to the right-hand box
	scrollbar1.config(command=self.helpBox.yview)
        scrollbar1.pack(side=RIGHT, fill=Y)
        self.helpBox.pack(expand=1)
        boxPanel.pack()

        # add buttons to help box
	helpboxWidth = self.helpBox.winfo_reqwidth()
        buttonBar = Frame(rightPanel, relief=FLAT, background="LemonChiffon", height=BUTTON_Y, width=helpboxWidth)

        img = Image.open("Graphics/backArrow.png")
        self.backImg = ImageTk.PhotoImage(img)
        prevButton =     Button(buttonBar, relief=RAISED, background="LemonChiffon", image=self.backImg, borderwidth=1,
                                activebackground="Turquoise", height=BUTTON_Y, command=self.prevScreen)
        prevButton.image = self.backImg
        
        img = Image.open("Graphics/yourCode.png")
        self.codeImg = ImageTk.PhotoImage(img)
        yourCodeButton = Button(buttonBar, relief=RAISED, background="LemonChiffon", image=self.codeImg, borderwidth=1,
                                activebackground="Turquoise", height=BUTTON_Y, command=self.lastScreen)
        yourCodeButton.image = self.codeImg

        img = Image.open("Graphics/nextArrow.png")
        self.nextImg = ImageTk.PhotoImage(img)
        nextButton =     Button(buttonBar, relief=RAISED, background="LemonChiffon", image=self.nextImg, borderwidth=1,
                                activebackground="Turquoise", height=BUTTON_Y, command=self.nextScreen)
        nextButton.image = self.nextImg

	prevButton.pack(side=LEFT)
	nextButton.pack(side=RIGHT)
	yourCodeButton.pack(padx=103)

	buttonBar.pack(fill=X)
	
	# set up tags to highlight errors in the text editor and do syntax highlighting
	self.textEditor.tag_config("error", background="OrangeRed", foreground="White")
	
	self.helpBox.tag_config("bold", font=self.boldFont)
	self.helpBox.tag_config("ital", font=self.italFont)
	self.helpBox.tag_config("underline", underline=1)
	self.helpBox.tag_config("code", font=self.boldFont, foreground="DarkViolet")
	
        panedWindow.add(rightPanel)
        panedWindow.pack(fill=BOTH, expand=1)
示例#12
0
    def __init__(self, master=None, main=None):
        Frame.__init__(self, master)

        self.parent = master
        self.main = main

        self.parent.geometry("640x150")
        self.parent.title(os.getenv("NAME") + " - Paths")

        self.master.configure(padx=10, pady=10)
        width = 14

        #icon
        icon = os.path.join("tkgui", "resources", "icons", "clear.png")
        image_clear = ImageTk.PhotoImage(file=icon)

        # lb8 = LabelFrame(self.parent, text="8-bit")
        # frame8 = Frame(self.parent)
        # self.parent.pack(fill=X, expand=True, side=TOP)

        frame8c = Frame(self.parent)
        frame_text1 = Frame(frame8c)
        frame_text1.pack(side=LEFT)
        # Label(frame_text1, text="SDCC compiler:", width=width, anchor="w").pack(side=LEFT)
        # self.label_sdcc_bin = Entry(frame8c)
        # self.label_sdcc_bin.pack(side=LEFT, fill=X, expand=True)
        frame8c.pack(fill=X, expand=True, side=TOP)

        # button = Button(frame8c, image=image_clear, relief=FLAT, command=lambda :self.reset_value("sdcc_bin"), borderwidth=0, highlightthickness=0)
        # button.image = image_clear
        # button.pack(side=LEFT, padx=2, pady=4)

        # Button(frame8c, text="Change...", command=self.set_dir_dialog(self.label_sdcc_bin)).pack(side=LEFT)

        frame8l = Frame(self.parent)
        frame_text2 = Frame(frame8l)
        frame_text2.pack(side=LEFT)
        Label(frame_text2, text="8-bit libraries:", width=width,
              anchor="w").pack(side=LEFT)
        self.label_pinguino_8_libs = Entry(frame8l)
        self.label_pinguino_8_libs.pack(side=LEFT, fill=X, expand=True)

        button = Button(frame8l,
                        image=image_clear,
                        relief=FLAT,
                        command=lambda: self.reset_value("pinguino_8_libs"),
                        borderwidth=0,
                        highlightthickness=0)
        button.image = image_clear
        button.pack(side=LEFT, padx=2, pady=4)

        Button(frame8l,
               text="Change...",
               command=self.set_dir_dialog(
                   self.label_pinguino_8_libs)).pack(side=LEFT)

        frame8l.pack(fill=X, expand=True, side=TOP)

        # lb32 = LabelFrame(self.parent, text="32-bit")

        # frame32 = Frame(lb32)

        frame32c = Frame(self.parent)
        frame_text3 = Frame(frame32c)
        frame_text3.pack(side=LEFT)
        # Label(frame_text3, text="GCC compiler:", width=width, anchor="w").pack(side=LEFT)
        # self.label_gcc_bin = Entry(frame32c)
        # self.label_gcc_bin.pack(side=LEFT, fill=X, expand=True)
        # button = Button(frame32c, image=image_clear, relief=FLAT, command=lambda :self.reset_value("gcc_bin"), borderwidth=0, highlightthickness=0)
        # button.image = image_clear
        # button.pack(side=LEFT, padx=2, pady=4)
        # Button(frame32c, text="Change...", command=self.set_dir_dialog(self.label_gcc_bin)).pack(side=LEFT)
        frame32c.pack(fill=X, expand=True, side=TOP)

        frame32l = Frame(self.parent)
        frame_text4 = Frame(frame32l)
        frame_text4.pack(side=LEFT)
        Label(frame_text4, text="32-bit libraries:", width=width,
              anchor="w").pack(side=LEFT)
        self.label_pinguino_32_libs = Entry(frame32l)
        self.label_pinguino_32_libs.pack(side=LEFT, fill=X, expand=True)
        button = Button(frame32l,
                        image=image_clear,
                        relief=FLAT,
                        command=lambda: self.reset_value("pinguino_32_libs"),
                        borderwidth=0,
                        highlightthickness=0)
        button.image = image_clear
        button.pack(side=LEFT, padx=2, pady=4)
        Button(frame32l,
               text="Change...",
               command=self.set_dir_dialog(
                   self.label_pinguino_32_libs)).pack(side=LEFT)
        frame32l.pack(fill=X, expand=True, side=TOP)

        # self.parent.pack(fill=X, expand=True, side=TOP)

        # lb8.pack(fill=X, expand=True, side=TOP, padx=10, pady=10)
        # lb32.pack(fill=X, expand=True, side=TOP, padx=10, pady=10)

        Label(
            self.master,
            text=
            "Pinguino IDE requieres a restart to reinitialize its prefertences.",
            anchor="w").pack(side=LEFT)
        Button(self.master, text="Close", command=self.quit).pack(side=RIGHT)

        self.dialog_dirs = (
            (self.label_pinguino_8_libs, "PINGUINO_8_LIBS"),
            (self.label_pinguino_32_libs, "PINGUINO_32_LIBS"),
        )

        default_paths = {
            "PINGUINO_8_LIBS": self.main.configIDE.get_path("pinguino_8_libs"),
            "PINGUINO_32_LIBS":
            self.main.configIDE.get_path("pinguino_32_libs"),
        }

        for lineEdit, keyWord in self.dialog_dirs:
            lineEdit.delete(0, END)
            lineEdit.insert(
                INSERT,
                self.main.configIDE.config("Paths", keyWord,
                                           default_paths[keyWord]))
示例#13
0
    def __init__(self, spectrometer):
             
        self.spectrometer = spectrometer
        #Define properties of graph
        self.x_min_range = 430
        self.x_max_range = 650
        self.box_width = self.spectrometer.camera.res_x - 100
        self.box_height = 5
        self.box_x = 50
        self.box_y = self.spectrometer.camera.res_y/2 - self.box_height/2
        
        
         
        
        Tkinter.Tk.__init__(self)
        
        Tkinter.Tk.wm_title(self, "Heriot-Watt University Raspberry Pi Spectrometer")
        #Tkinter.resizable(0,0)
        
        
        logo = Tkinter.PhotoImage(file = "img/logo/favicon32.png")
        up = Tkinter.PhotoImage(file= "img/up.png")
        down = Tkinter.PhotoImage(file = "img/down.png")
        right = Tkinter.PhotoImage(file = "img/right.png")
        left = Tkinter.PhotoImage(file = "img/left.png")
        self.tk.call('wm', 'iconphoto', self._w, logo)
    
        
        self.canvas = Canvas(self, width = self.spectrometer.camera.res_x, height = self.spectrometer.camera.res_y, bg="white")
        self.canvas.grid(row = 0, column = 0)
        self.image = self.spectrometer.camera.get_image()
        b,g,r = cv2.split(self.image)
        img2 = cv2.merge((r,g,b))
        imgFromArray = Image.fromarray(img2)
        self.tk_image = ImageTk.PhotoImage(image=imgFromArray)
        self.image_on_canvas = self.canvas.create_image(self.spectrometer.camera.res_x/2, self.spectrometer.camera.res_y/2, image = self.tk_image)
       
        self.rectangle = self.canvas.create_rectangle(self.box_x, self.box_y, self.box_x + self.box_width, self.box_y + self.box_height, outline='white')


        f = Frame(self)
        f.grid(row = 1, column = 0)

        f1 = Frame(f)
        f1.grid(row = 0, column = 0)

        
        analyseButton = Button(f1, text = "Graph", bg  = "steel blue", font = "Verdana 10 bold", command = lambda : self.buttonClicked())
        analyseButton.grid(column=0, row=0, sticky = W)


        f2 = Frame(f)
        f2.grid(row = 0, column = 1, padx = 30)

        

        xPositionPlusButton = Button(f2, image = right, command = lambda : self.changeXPosition(1))
        xPositionPlusButton.grid(column=2, row=1)
        xPositionMinusButton = Button(f2, image = left, command = lambda : self.changeXPosition(-1))
        xPositionMinusButton.grid(column=0, row=1)
        yPositionPlusButton = Button(f2, image = up, command = lambda : self.changeYPosition(-1))
        yPositionPlusButton.grid(column=1, row=0)
        yPositionMinusButton = Button(f2,image = down, command = lambda : self.changeYPosition(1))
        yPositionMinusButton.grid(column=1, row=2)
        g = Label(f2, text="Position", font = "Verdana 10 bold")
        g.grid(column= 1, row = 1)

        xPositionPlusButton.image = right
        xPositionMinusButton.image = left
        yPositionPlusButton.image = up
        yPositionMinusButton.image = down
        
        f3 = Frame(f)
        f3.grid(row = 0, column = 2)

        f4 = Frame(f)
        f4.grid(row = 0, column = 3, padx = 30)

        f5 = Frame(f)
        f5.grid(row = 0, column = 4)
        
        widthPlusButton = Button(f3, text = "+",  fg = 'red', font = "Verdana 12 bold", command = lambda : self.changeWidth(1))
        widthPlusButton.grid(column=2, row=0)
        widthMinusButton = Button(f3, text = "-",  font = "Verdana 12 bold", command = lambda : self.changeWidth(-1))
        widthMinusButton.grid(column=0, row=0)
        heightPlusButton = Button(f4, text = "+", fg = 'red', font = "Verdana 12 bold", command = lambda : self.changeHeight(1))
        heightPlusButton.grid(column=1, row=0)
        heightMinusButton = Button(f4, text = "-",  font = "Verdana 12 bold", command = lambda : self.changeHeight(-1))
        heightMinusButton.grid(column=1, row=2)
        resetButton = Button(f5, text = "Reset", bg = 'black', fg = 'red', font = "Verdana 10 bold", command = lambda : self.reset())
        resetButton.grid(column=0,row = 0)
        w = Label(f3, text="Width", font = "Verdana 10 bold")
        w.grid(column= 1, row = 0)
        h = Label(f4, text="Height", font = "Verdana 10 bold")
        h.grid(column= 1, row = 1)

        
        
        
        
       
        self.camera_thread = Thread(target = UpdateImage, args=(0, self))
        self.camera_thread.daemon = True
        self.camera_thread.start()
示例#14
0
    def __init__(self, master=None, main=None):
        Frame.__init__(self, master)

        self.parent = master
        self.main = main

        self.parent.geometry("640x150")
        self.parent.title(os.getenv("NAME")+" - Paths")

        self.master.configure(padx=10, pady=10)
        width = 14

        #icon
        icon = os.path.join("tkgui", "resources", "icons", "clear.png")
        image_clear = ImageTk.PhotoImage(file=icon)

        # lb8 = LabelFrame(self.parent, text="8-bit")
        # frame8 = Frame(self.parent)
        # self.parent.pack(fill=X, expand=True, side=TOP)

        frame8c = Frame(self.parent)
        frame_text1 = Frame(frame8c)
        frame_text1.pack(side=LEFT)
        # Label(frame_text1, text="SDCC compiler:", width=width, anchor="w").pack(side=LEFT)
        # self.label_sdcc_bin = Entry(frame8c)
        # self.label_sdcc_bin.pack(side=LEFT, fill=X, expand=True)
        frame8c.pack(fill=X, expand=True, side=TOP)

        # button = Button(frame8c, image=image_clear, relief=FLAT, command=lambda :self.reset_value("sdcc_bin"), borderwidth=0, highlightthickness=0)
        # button.image = image_clear
        # button.pack(side=LEFT, padx=2, pady=4)

        # Button(frame8c, text="Change...", command=self.set_dir_dialog(self.label_sdcc_bin)).pack(side=LEFT)

        frame8l = Frame(self.parent)
        frame_text2 = Frame(frame8l)
        frame_text2.pack(side=LEFT)
        Label(frame_text2, text="8-bit libraries:", width=width, anchor="w").pack(side=LEFT)
        self.label_pinguino_8_libs = Entry(frame8l)
        self.label_pinguino_8_libs.pack(side=LEFT, fill=X, expand=True)

        button = Button(frame8l, image=image_clear, relief=FLAT, command=lambda :self.reset_value("pinguino_8_libs"), borderwidth=0, highlightthickness=0)
        button.image = image_clear
        button.pack(side=LEFT, padx=2, pady=4)

        Button(frame8l, text="Change...", command=self.set_dir_dialog(self.label_pinguino_8_libs)).pack(side=LEFT)

        frame8l.pack(fill=X, expand=True, side=TOP)


        # lb32 = LabelFrame(self.parent, text="32-bit")

        # frame32 = Frame(lb32)


        frame32c = Frame(self.parent)
        frame_text3 = Frame(frame32c)
        frame_text3.pack(side=LEFT)
        # Label(frame_text3, text="GCC compiler:", width=width, anchor="w").pack(side=LEFT)
        # self.label_gcc_bin = Entry(frame32c)
        # self.label_gcc_bin.pack(side=LEFT, fill=X, expand=True)
        # button = Button(frame32c, image=image_clear, relief=FLAT, command=lambda :self.reset_value("gcc_bin"), borderwidth=0, highlightthickness=0)
        # button.image = image_clear
        # button.pack(side=LEFT, padx=2, pady=4)
        # Button(frame32c, text="Change...", command=self.set_dir_dialog(self.label_gcc_bin)).pack(side=LEFT)
        frame32c.pack(fill=X, expand=True, side=TOP)


        frame32l = Frame(self.parent)
        frame_text4 = Frame(frame32l)
        frame_text4.pack(side=LEFT)
        Label(frame_text4, text="32-bit libraries:", width=width, anchor="w").pack(side=LEFT)
        self.label_pinguino_32_libs = Entry(frame32l)
        self.label_pinguino_32_libs.pack(side=LEFT, fill=X, expand=True)
        button = Button(frame32l, image=image_clear, relief=FLAT, command=lambda :self.reset_value("pinguino_32_libs"), borderwidth=0, highlightthickness=0)
        button.image = image_clear
        button.pack(side=LEFT, padx=2, pady=4)
        Button(frame32l, text="Change...", command=self.set_dir_dialog(self.label_pinguino_32_libs)).pack(side=LEFT)
        frame32l.pack(fill=X, expand=True, side=TOP)


        # self.parent.pack(fill=X, expand=True, side=TOP)


        # lb8.pack(fill=X, expand=True, side=TOP, padx=10, pady=10)
        # lb32.pack(fill=X, expand=True, side=TOP, padx=10, pady=10)



        Label(self.master, text="Pinguino IDE requieres a restart to reinitialize its prefertences.", anchor="w").pack(side=LEFT)
        Button(self.master, text="Close", command=self.quit).pack(side=RIGHT)


        self.dialog_dirs = ((self.label_pinguino_8_libs, "PINGUINO_8_LIBS"),
                            (self.label_pinguino_32_libs, "PINGUINO_32_LIBS"),
                           )

        default_paths = {"PINGUINO_8_LIBS": self.main.configIDE.get_path("pinguino_8_libs"),
                         "PINGUINO_32_LIBS": self.main.configIDE.get_path("pinguino_32_libs"),
                         }

        for lineEdit, keyWord in self.dialog_dirs:
            lineEdit.delete(0, END)
            lineEdit.insert(INSERT, self.main.configIDE.config("Paths", keyWord, default_paths[keyWord]))
示例#15
0
    def refreshWidget(self):
        #print "refresh"
        self.card_win.pack_forget()

        #Card window
        self.card_win = PanedWindow(self.card_win.master, orient=VERTICAL)
        self.card_win.pack(side=TOP, expand=True, fill=BOTH, pady=2, padx=2)

        #Create the name zone
        name_zone = PanedWindow(self.card_win, orient=HORIZONTAL)
        name = StringVar()
        name.set(self.name)
        from deck_creation import blocked_creature

        def modifName(*args):
            old = self.name in blocked_creature
            self.name = name.get()
            if old or self.name in blocked_creature:
                self.refreshWidget()

        name.trace("w", modifName)
        name_wid = Entry(name_zone, width=30, textvariable=name)
        name_wid.pack()
        name_zone.add(name_wid)
        #Create the cost ad star stringvar
        #print int(floor(self.getCost()))
        self.cost = StringVar()
        self.stars = StringVar()
        cost_wid = Label(None,
                         textvariable=self.cost,
                         background='red',
                         width=5,
                         anchor=W)
        star_wid = Label(None,
                         textvariable=self.stars,
                         background='blue',
                         anchor=E)
        self.cost.set(str(int(floor(self.getCost()))))
        self.stars.set("*" * self.getStars())
        #Add them in name zone
        name_zone.add(cost_wid)
        name_zone.add(star_wid)

        #Create an Image Zone
        image_zone = Button(self.card_win, command=self.choosePhoto)
        if hasattr(self, "photofile") and self.photofile:
            print "Image: ", self.photofile
            try:
                img = Image.open(self.photofile)
            except:
                decomp = self.photofile.split('/')
                for i in range(1, 6):
                    try:
                        fname = "/".join(decomp[-i:])
                        print "try to open", fname
                        img = Image.open(fname)
                        self.photofile = fname
                        break
                    except:
                        self.photofile = None
        if self.photofile:
            w, h = img.size
            if w > 300 or h > 200:
                img = img.resize((w / 2, h / 2), Image.LINEAR)
            image_zone.image = ImageTk.PhotoImage(img)
            image_zone.config(image=image_zone.image)
            #print "IMAGE CHANGED"
        else:
            from os import path
            fname = self.name.replace(" ", "_")
            if path.isfile("Cards/" + fname + ".png"):
                image_zone.config(text='image can be taken from\n' + "Cards/" +
                                  fname + ".png",
                                  background='white',
                                  anchor=CENTER)
            else:
                image_zone.config(text='clic to choose image',
                                  background='white',
                                  anchor=CENTER)

        image_zone.pack

        # POWER ZONE
        power_zone = PanedWindow(self.card_win, orient=VERTICAL)

        #fenetre=self.card_win.master
        def removePowerCreator(px):
            def removePower(*args):
                #print 'avant',list_pow
                self.bonus.remove(px)
                #print 'apres',list_pow
                #self.card_win.pack_forget()
                self.refreshWidget()

            return removePower

        for p in self.bonus:
            powline = PanedWindow(self.card_win, orient=HORIZONTAL)
            pow_wid = p.initWidget(powline)
            powline.add(pow_wid)
            removepow = Button(powline,
                               text="X",
                               command=removePowerCreator(p),
                               anchor=E)
            removepow.pack()
            powline.add(removepow)
            power_zone.add(powline)

        def addPower(*args):
            name = addBonus.get()
            print "added :", name
            import cardPowers
            self.bonus += [eval('cardPowers.' + name + '()')]
            self.bonus[-1].parent = self.bonus
            self.bonus[-1].card = self
            #self.card_win.pack_forget()
            self.refreshWidget()

        #Add bonus Option menu
        addBonus = StringVar(power_zone)
        addBonus.set("add bonus")  # default value
        if not self.pv: addBonus_wid = getSpellMenu(power_zone, addBonus)
        else: addBonus_wid = getBonusMenu(power_zone, addBonus)
        addBonus.trace('w', addPower)
        if self.pv > 0 or len(self.bonus) == 0:
            addBonus_wid.pack()
            #Add this to power zone
            power_zone.add(addBonus_wid)

        #Create save zone
        save_zone = PanedWindow(self.card_win, orient=HORIZONTAL)
        lv = int(localopen("progression", "r").read())
        if self.monster_type != "all" and not (lv < 8 and self.name
                                               in blocked_creature):
            save_wid = Button(save_zone, text="Save", command=self.postAndSave)
        elif self.monster_type != "all":
            save_wid = Button(save_zone,
                              text="creature in campaign",
                              command=None)
        else:
            save_wid = Button(save_zone, text="nead type", command=None)
        save_wid.pack()
        #Create the open button
        save_zone.pack()
        if Card.monster_list.keys():
            self.opening = StringVar(save_zone)
            self.opening.set("Open")
            choice = Card.monster_list.keys()
            choice.sort()
            #print all_monsters.keys()
            open_wid = OptionMenu(save_zone, self.opening, *choice)
            self.opening.trace('w', self.Open)
            open_wid.pack()
            save_zone.add(open_wid)

        if Card.monster_list.keys():
            self.delete = StringVar(save_zone)
            self.delete.set("Delete")
            choice = Card.monster_list.keys()
            choice.sort()
            delete_wid = OptionMenu(save_zone, self.delete, *choice)
            self.delete.trace('w', self.clicDelete)
            delete_wid.pack()
            save_zone.add(delete_wid)

        #Create the type button
        self.category = StringVar(save_zone)
        self.category.set(self.monster_type)
        choice = [
            file2name(t, "_monsters.sav")
            for t in glob.glob("CardFiles/*_monsters.sav")
        ]
        if "recup" in choice:
            choice.remove("recup")
        #print all_monsters.keys()
        category_wid = OptionMenu(save_zone, self.category, *choice)
        self.category.trace('w', self.setFile)

        category_wid.pack()

        #Add it to save zone
        save_zone.add(save_wid)
        save_zone.add(category_wid)

        #Create a new Strength zone for att and pv
        strength_zone = PanedWindow(self.card_win, orient=HORIZONTAL)
        att = StringVar()
        att.set(str(self.att))
        pv = StringVar()
        pv.set(str(self.pv))

        def modifiedAttPv(*args):
            print "modifiedAttPv"
            self.pv = int(pv.get())
            if self.pv < 1 and self.is_spell == False:
                if len(self.bonus) == 0:
                    self.is_spell = True
                    self.refreshWidget()
                else:
                    self.pv = 1
                    self.refreshWidget()
            if self.pv > 0 and self.is_spell == True:
                if len(self.bonus) == 0:
                    self.is_spell = False
                    self.refreshWidget()
                else:
                    self.pv = 0
                    self.refreshWidget()
            self.att = int(att.get())
            self.getCost()

        att_wid = Spinbox(strength_zone,
                          from_=0,
                          to=1000,
                          textvariable=att,
                          command=modifiedAttPv)
        att_wid.pack()
        strength_zone.add(att_wid)
        strength_zone.add(
            Label(strength_zone,
                  text='       ',
                  background='white',
                  anchor=CENTER))
        pv_wid = Spinbox(strength_zone,
                         from_=0,
                         to=1000,
                         textvariable=pv,
                         command=modifiedAttPv)
        pv_wid.pack()
        strength_zone.add(pv_wid)

        #Put it all in window
        self.card_win.add(name_zone)
        self.card_win.add(image_zone)
        self.card_win.add(power_zone)
        self.card_win.add(strength_zone)
        self.card_win.add(save_zone)

        self.card_win.pack()
示例#16
0
    def refreshWidget(self) :
        #print "refresh"
        self.card_win.pack_forget()
        
        #Card window      
        self.card_win = PanedWindow(self.card_win.master, orient=VERTICAL)
        self.card_win.pack(side=TOP, expand=True, fill=BOTH, pady=2, padx=2)
        
        
        #Create the name zone
        name_zone=PanedWindow(self.card_win, orient=HORIZONTAL)
        name = StringVar() 
        name.set(self.name)
        def modifName(*args) :
            self.name=name.get()
        name.trace("w", modifName)
        name_wid=Entry(name_zone, width=30,textvariable=name)
        name_wid.pack()
        name_zone.add(name_wid)
        #Create the cost ad star stringvar
        #print int(floor(self.getCost()))
        self.cost=StringVar()
        self.stars=StringVar()
        cost_wid=Label(None, textvariable=self.cost, background='red',width=5, anchor=W)
        star_wid=Label(None, textvariable=self.stars, background='blue', anchor=E)
        self.cost.set(str(int(floor(self.getCost()))))
        self.stars.set("*"*self.getStars())
        #Add them in name zone
        name_zone.add(cost_wid)
        name_zone.add(star_wid)
        
        
        #Create an Image Zone
        image_zone=Button(self.card_win,  command=self.choosePhoto)
        if hasattr(self,"photofile") and self.photofile :            
            print "Image: ",self.photofile
            try :
               img=Image.open(self.photofile)
            except :
               decomp=self.photofile.split('/')
               for i in range(1,6) :
                   try :
                       fname="/".join(decomp[-i:])
                       print "try to open",fname
                       img=Image.open(fname)
                       self.photofile=fname
                       break
                   except :
                       self.photofile=None
        if self.photofile :
            w, h = img.size
            if w>300 or h>200 :
               img=img.resize((w/2,h/2),Image.LINEAR)
            image_zone.image=ImageTk.PhotoImage(img)
            image_zone.config(image=image_zone.image)
            #print "IMAGE CHANGED"
        else :
            from os import path
            name=self.name.replace(" ","_")
            if path.isfile("Cards/"+name+".png") :
                image_zone.config(text='image can be taken from\n'+"Cards/"+name+".png",background='white',anchor=CENTER)
            else :
                image_zone.config(text='clic to choose image',background='white',anchor=CENTER)

        image_zone.pack
        
        
        # POWER ZONE
        power_zone=PanedWindow(self.card_win, orient=VERTICAL)
        #fenetre=self.card_win.master
        def removePowerCreator(px) :
            def removePower(*args) :
                #print 'avant',list_pow
                self.bonus.remove(px)
                #print 'apres',list_pow
                #self.card_win.pack_forget()
                self.refreshWidget()
            return removePower
        for p in self.bonus :
            powline =  PanedWindow(self.card_win, orient=HORIZONTAL)
            pow_wid=p.initWidget(powline)
            powline.add(pow_wid)
            removepow=Button(powline, text="X", command=removePowerCreator(p), anchor=E)
            removepow.pack()
            powline.add(removepow)
            power_zone.add(powline) 
        def addPower(*args) :
            name=addBonus.get()
            print "added :",name
            import cardPowers
            self.bonus+=[eval('cardPowers.'+name+'()')]
            self.bonus[-1].parent=self.bonus
            self.bonus[-1].card=self
            #self.card_win.pack_forget()
            self.refreshWidget()
        #Add bonus Option menu
        addBonus = StringVar(power_zone)
        addBonus.set("add bonus") # default value
        if not self.pv:  addBonus_wid = getSpellMenu(power_zone, addBonus)
        else: addBonus_wid = getBonusMenu(power_zone, addBonus) 
        addBonus.trace('w', addPower)
        if self.pv>0 or len(self.bonus)==0 :
            addBonus_wid.pack()
            #Add this to power zone
            power_zone.add(addBonus_wid)
        
        #Create save zone
        save_zone = PanedWindow(self.card_win, orient=HORIZONTAL)
        if self.monster_type != "all":
            save_wid = Button(save_zone, text="Save", command=self.postAndSave)
        else:
            save_wid = Button(save_zone, text="---", command=None)
        save_wid.pack()
        #Create the open button
        save_zone.pack()        
        if Card.monster_list.keys():
            self.opening = StringVar(save_zone)
            self.opening.set("Open")
            choice = Card.monster_list.keys()
            choice.sort()
            #print all_monsters.keys()
            open_wid = OptionMenu(save_zone, self.opening,*choice)
            self.opening.trace('w', self.Open)
            open_wid.pack()
            save_zone.add(open_wid)
        
        if Card.monster_list.keys():
            self.delete = StringVar(save_zone)
            self.delete.set("Delete")
            choice = Card.monster_list.keys()
            choice.sort()
            delete_wid = OptionMenu(save_zone, self.delete,*choice)
            self.delete.trace('w', self.clicDelete)
            delete_wid.pack()
            save_zone.add(delete_wid)
        
        #Create the type button
        self.category = StringVar(save_zone)
        self.category.set(self.monster_type)
        choice = [t[t.index("\\")+1:t.index("_monsters.sav")] for t in glob.glob("CardFiles/*_monsters.sav")]
        if "recup" in choice:
            choice.remove("recup")
        #print all_monsters.keys()
        category_wid = OptionMenu(save_zone, self.category,*choice)
        self.category.trace('w', self.setFile)
        
        
        
        category_wid.pack()
        
        #Add it to save zone
        save_zone.add(save_wid)
        save_zone.add(category_wid)
        
        #Create a new Strength zone for att and pv
        strength_zone=PanedWindow(self.card_win, orient=HORIZONTAL)
        att=StringVar()
        att.set(str(self.att))
        pv=StringVar() ; pv.set(str(self.pv))
        def modifiedAttPv(*args) :
            self.pv=int(pv.get())
            if self.pv<1 and self.is_spell==False :
                if len(self.bonus)==0 :
                    self.is_spell=True
                    self.refreshWidget()
                else :
                    self.pv=1
                    self.refreshWidget()
            if self.pv>0 and self.is_spell==True :
                if len(self.bonus)==0 :
                    self.is_spell=False
                    self.refreshWidget()
                else :
                    self.pv=0
                    self.refreshWidget()            
            self.att=int(att.get())
            self.getCost()
        att_wid = Spinbox(strength_zone, from_=0, to=1000,textvariable=att,command=modifiedAttPv)
        att_wid.pack()
        strength_zone.add(att_wid)
        strength_zone.add(Label(strength_zone, text='       ', background='white', 
             anchor=CENTER))
        pv_wid = Spinbox(strength_zone, from_=0, to=1000,textvariable=pv,command=modifiedAttPv)
        pv_wid.pack()
        strength_zone.add(pv_wid)
        
        #Put it all in window
        self.card_win.add(name_zone)
        self.card_win.add(image_zone)
        self.card_win.add(power_zone)  
        self.card_win.add(strength_zone)
        self.card_win.add(save_zone)
        
        
        self.card_win.pack()