سلام

یه سورس حرفه ای ماشین حساب گرافیکی پایتون پیدا کردم و یکمی اصلاحش کردم تا این شد:

حالا کد های زیر را داخل یه فایل پایتون ذخیره و اجرا کنید:

from tkinter import*


#clevers.ir
def fCalc(src, side):
    appObj = Frame(src, borderwidth=4, bd=2,bg = "#cccccc")
    appObj.pack(side=side, expand=YES, fill=BOTH)
    return appObj

def button(src, side, text, command=None):
    appObj = Button(src, text=text, command=command)
    appObj.pack(side=side, expand=YES, fill=BOTH)
    return appObj

class app(Frame):
    def __init__(self, root = Tk(), width=364, height=425):
        Frame.__init__(self)
        self.option_add("*Font", 'arial 20 bold')
        self.pack(expand=YES, fill=BOTH)
        self.master.title("Clevers.ir Calculator")
        screen_width = root.winfo_screenwidth()
        screen_height = root.winfo_screenheight()
        x = (screen_width/2) - (width/2)
        y = (screen_height/2) - (height/2)
        root.geometry('%dx%d+%d+%d' % (width, height, x, y))
        display = StringVar()
        Entry(self, relief= RIDGE,      
                    textvariable=display, state=DISABLED, justify='right', bd=20, bg="silver").pack(side=TOP, expand=YES,
                            fill=BOTH)
        clrChar = "Clear"
        button(self, TOP, clrChar, lambda appObj=display, i=clrChar: appObj.set(''))


        for btnNum in ("789/", "456*", "123-", "0.+"):

            FunctionNum = fCalc(self, TOP)
            for fEquals in btnNum:
                button(FunctionNum, LEFT, fEquals,
                        lambda appObj=display, i=fEquals: appObj.set(appObj.get() + i))
                EqualsButton = fCalc(self, TOP)
                
        for fEquals in "=":
            if fEquals == "=":
                btnEquals = button(EqualsButton, LEFT, fEquals)
                btnEquals.bind('<ButtonRelease-1>',
                                lambda e, s=self, appObj=display: s.result(appObj), "+")
            else:
                btnEquals = button(EqualsButton, LEFT, fEquals,
                        lambda appObj=display, s=" %s "%fEquals: appObj.set(appObj.get()+s))

    def result(self, display):
        try:
            display.set(eval(display.get()))
        except:
            display.set("UNDEFINED")

if __name__ == '__main__':
    app().mainloop()


امیدوارم خوشتون اومده باشه.

 

موفق باشید.


مشخصات

  • جهت مشاهده منبع اصلی این مطلب کلیک کنید
  • کلمات کلیدی منبع : appobj ,self ,display ,fequals ,side ,button ,appobj display ,fill both ,left fequals ,lambda appobj ,pack side ,lambda appobj display ,btnequals button equalsbutton ,fequals lambda appobj ,left fequals lambda
  • در صورتی که این صفحه دارای محتوای مجرمانه است یا درخواست حذف آن را دارید لطفا گزارش دهید.

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

دنیای سبز من آموزش ترجمه Shawn خط تولید خمیر کروسان machinead طلاق توافقی آنزو candycrushh مجله اينترنتي مهندسی پزشکی