class MyEntry(Entry):
    charwidth, bgcolor, fgcolor = 20, GrayScale(20), GrayScale(220)

    def __init__(self, parent, text, relx, rely):
        self.parent, self.text, self.relx, self.rely = parent, text, relx, rely

        Entry.__init__(self, self.parent)

        self.defaults()

    def defaults(self):
        self.entryConfigure()
        self.entryPlace()
        self.createLabel()

    def entryConfigure(self):
        self.configure(width=self.charwidth,
                       font=MyFonts['Default'],
                       bg=self.bgcolor,
                       fg=self.fgcolor,
                       relief=RIDGE,
                       highlightthickness=2,
                       bd=0)

    def entryPlace(self):
        self.place(relx=self.relx, rely=self.rely)

    def createLabel(self):
        self.label = MyLabel(self.parent, self.text, self.relx,
                             self.rely - 0.050)
        self.label.configure(font=MyFonts['Large'])
Exemple #2
0
class MyScale(Scale):
    bgcolor, fgcolor, lowrange, highrange, resolution, s_relwidth, s_relheight = GrayScale(
        20), GrayScale(220), 1.0, 100.0, 0.1, 0.10, 0.05

    def __init__(self, parent, text, relx, rely):
        self.parent, self.text, self.relx, self.rely = parent, text, relx, rely

        Scale.__init__(self, self.parent)

        self.l_val = StringVar()
        self.defaults()

    def defaults(self):
        self.scaleConfigure()
        self.scalePlace()
        self.labelCreate()

    def scaleConfigure(self):
        self.configure(command=self.update,
                       from_=self.lowrange,
                       to=self.highrange,
                       orient=HORIZONTAL,
                       showvalue=0,
                       resolution=self.resolution,
                       bg=self.bgcolor,
                       fg=self.fgcolor,
                       relief=RIDGE,
                       highlightthickness=0,
                       bd=0)

    def scalePlace(self):
        self.place(relx=self.relx,
                   rely=(self.rely + 0.01),
                   relwidth=self.s_relwidth,
                   relheight=self.s_relheight)

    def createLabel(self):
        self.label = Label(self.parent)

        self.labelConfigure()
        self.labelPlace()

    def labelConfigure(self):
        self.label.configure(textvariable=self.l_val,
                             font=MyFonts['Large'],
                             bg=self.bgcolor,
                             fg=self.fgcolor,
                             relief=FLAT,
                             padx=2,
                             pady=2)

    def labelPlace(self):
        self.label.place(relx=self.relx, rely=self.rely - 0.050)

    def update(self, *args):
        self.l_val.set(self.text + ' = ' + str(Scale.get(self)))
    def createButtons(self):
        tmp = False

        def placeholder():
            pass

        self.button1 = MyButton(self.mainFrame, 'Convert!', self.gotoMain,
                                0.25, 0.20)
        if tmp:
            self.button2 = MyButton(self.mainFrame, 'Button2', placeholder,
                                    0.25, 0.30)
            self.button3 = MyButton(self.mainFrame, 'Button3', placeholder,
                                    0.25, 0.40)
            self.button4 = MyButton(self.mainFrame, 'Button4', placeholder,
                                    0.25, 0.50)
            self.button5 = MyImageButton(
                self.mainFrame, GrayScale(20),
                createTkImage('data/images/preferences.png', 48, 48),
                self.gotoPreferences, 0.425, 0.65)

        self.button1.place(relwidth=0.50)
        if tmp:
            self.button2.place(relwidth=0.50)
            self.button3.place(relwidth=0.50)
            self.button4.place(relwidth=0.50)
            self.button5.place(relwidth=0.15, relheight=0.075)
 def showtip(self, text):
     # showtip method for ToolTip class
     self.text = text
     if self.tipwindow or not self.text:
         return
     x, y, cx, cy = self.widget.bbox('insert')
     x = x + self.widget.winfo_rootx() + 60
     y = y + cy + self.widget.winfo_rooty() + 30
     self.tipwindow = tw = Toplevel(self.widget)
     tw.wm_overrideredirect(1)
     tw.wm_geometry('+%d+%d' % (x, y))
     label = Label(tw, text=self.text)
     label.configure(justify=LEFT,
                     relief=SOLID, bd=1,
                     bg=GrayScale(60), fg=GrayScale(220),
                     font=MyFonts['Default'])
     label.pack(ipadx=1)
class MyLabel(Label):
    bgcolor, fgcolor = GrayScale(20), GrayScale(220)

    def __init__(self, parent, text, relx, rely):
        self.parent, self.text, self.relx, self.rely = parent, text, relx, rely

        Label.__init__(self, self.parent)

        self.configure_()
        self.place_()

    def configure_(self):
        self.configure(text=self.text,
                       font=MyFonts['Default'],
                       bg=self.bgcolor, fg=self.fgcolor,
                       relief=FLAT, anchor=N,
                       padx=2, pady=2)

    def place_(self):
        self.place(relx=self.relx, rely=self.rely)
Exemple #6
0
class MyButton(Button):

    bgcolor, fgcolor, relwidth, relheight = GrayScale(40), GrayScale(220), 0.10, 0.05
    abgcolor, afgcolor = bgcolor, fgcolor

    def __init__(self, parent, text, command, relx, rely):
        self.text, self.command, self.relx, self.rely = text, command, relx, rely

        Button.__init__(self, parent)

        self.configure_()
        self.place_()

    def configure_(self):
        self.configure(text=self.text, command=self.command,
                       font=MyFonts['DefaultBold'],
                       bg=self.bgcolor, fg=self.fgcolor,
                       activebackground=self.abgcolor, activeforeground=self.afgcolor,
                       relief=RIDGE, highlightthickness=0, bd=0)

    def place_(self):
        self.place(relx=self.relx, rely=self.rely, relwidth=self.relwidth, relheight=self.relheight)
    def createFrames(self):
        self.mainFrame = MyFrame(self.parent, GrayScale(0))
        self.mainFrame.place(relx=self.relx,
                             rely=self.rely,
                             relwidth=self.relwidth,
                             relheight=self.relheight)

        self.frame1 = MyFrame(self.mainFrame, GrayScale(80))
        self.frame2 = MyFrame(self.mainFrame, GrayScale(60))

        self.button1 = MyButton(self.frame1, 'Disabled', self.func1, 0, 0)
        self.button2 = MyButton(self.frame2, 'Enabled', self.func2, 0, 0)

        gs20, gs40, gs180 = GrayScale(20), GrayScale(40), GrayScale(180)
        self.button1.configure(bg=gs40, activebackground=gs180, fg=gs20)
        self.button2.configure(bg=gs180, activebackground=gs40, fg=gs20)

        self.button1.place(relwidth=1, relheight=1)
        self.button2.place(relwidth=1, relheight=1)
 def createFrame(self):
     self.mainFrame = MyFrame(self.root, GrayScale(20))
 def createSaveButton(self):
     self.save_button = MyImageButton(
         self.mainFrame, GrayScale(20),
         createTkImage('data/images/save.png', 48, 48), self.funcSave, 0.56,
         0.85)
     self.save_button.place(relwidth=0.14, relheight=0.07)
 def createResetButton(self):
     self.reset_button = MyImageButton(
         self.mainFrame, GrayScale(20),
         createTkImage('data/images/reset.png', 48, 48), self.funcReset,
         0.30, 0.85)
     self.reset_button.place(relwidth=0.14, relheight=0.07)
 def createCreditsLabel(self):
     credits_text = 'Created By: Yaqin Hasan'
     self.creditsLabel = MyLabel(self.mainFrame, credits_text, 0.25, 0.75)
     self.creditsLabel.configure(font=MyFonts['Default'], fg=GrayScale(180))
     self.creditsLabel.place(relwidth=0.50, relheight=0.25)
def programQuit(*args):
    if dev:
        print('[program] quit')

    exit()

    return None


# creating root
root = Tk()
root.title('MyApp')
root.iconbitmap('data/images/favicon.icosome psssssome optimizat')
root.resizable(False, False)
root.geometry(makeGeometry(root, config_width, config_height))
root.configure(bg=GrayScale(20))

# creating StartPage instance 'startPage'
startPage = StartPage(root)


def raiseStart(*args):
    root.geometry(makeGeometry(root, int(config_height / 2), config_height))
    startPage.mainFrame.tkraise()


raiseStart()

# binds
root.bind('<Control-q>', programQuit)
root.bind('<Control-r>', programRestart)