Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में टिंकर का उपयोग करके एक साधारण जीयूआई कैलकुलेटर कैसे बनाएं

परिचय

पायथन में, हम tkinter लाइब्रेरी का उपयोग करते हैं जीयूआई घटकों को बनाने और बेहतर यूजर इंटरफेस तैयार करने के लिए।

इस लेख में आप एक साधारण GUI आधारित कैलकुलेटर एप्लिकेशन बनाने के तरीके सीखेंगे।

आरंभ करना

इससे पहले कि हम इसमें कूदें, कुछ चीजें हैं जिन्हें हमें पहले व्यवस्थित करने की आवश्यकता है।

आइए हम पायथन की इमेजिंग लाइब्रेरी को डाउनलोड करके शुरू करें जिसका उपयोग हम अपने स्थानीय सिस्टम से चित्र प्राप्त करने के लिए करेंगे। जनहित याचिका (तकिया) स्थापित करने के लिए, अपना टर्मिनल लॉन्च करें और नीचे कमांड टाइप करें।

pip install Pillow

अब जब आपके पास पैकेज स्थापित हो गया है। आपको कैलकुलेटर के लिए आवश्यक आइकन डाउनलोड करने होंगे।

आप Google छवियों पर जा सकते हैं और आवश्यक आइकन डाउनलोड कर सकते हैं। हालांकि, यदि आप इस प्रोजेक्ट के लिए उपयोग किए गए आइकन के समान सेट चाहते हैं, तो आप इसे -

से डाउनलोड कर सकते हैं।

https://www.dropbox.com/sh/0zqd6zd9b8asmor/AAC3d2iOvMRl8INkbCuMUo_ya?dl=0.

सुनिश्चित करें कि आप सभी आइकन "एसेट" नामक फ़ोल्डर में डाउनलोड करते हैं।

अगला, हमें आवश्यक मॉड्यूल आयात करने की आवश्यकता है।

from tkinter import *
from PIL import Image # pip install Pillow
from PIL import ImageTk

और बस। अब आपके पास सब कुछ सेट अप और आरंभ करने के लिए तैयार होना चाहिए।

फ़ंक्शंस बनाना

सबसे पहले, हमें GUI घटकों द्वारा उपयोग किए जाने वाले फ़ंक्शन बनाने चाहिए।

तीन मुख्य कार्य होते हैं, एक जब संख्या या प्रतीक को दबाया जाता है, दूसरा जब बराबर बटन दबाया जाता है और फिर अंत में जब स्पष्ट बटन दबाया जाता है।

आइए पहले कुछ वैश्विक चरों को इनिशियलाइज़ करें -

txt = ""
res = False
ans = 0

उदाहरण

फ़ंक्शन जब कुंजी की संख्या को दबाया जाता है -

def press(num):
   global txt, ans, res
   if (res==True):
      txt = ans
      res = False
   txt = txt + str(num)
   equation.set(txt)

उदाहरण1

फंक्शन जब इक्वल टू बटन को दबाया जाता है -

def equal():
   try:
      global txt, ans, res
      ans = str(eval(txt))
      equation.set(ans)
      res = True
   except:
      equation.set("ERROR : Invalid Equation")
      txt=""

स्पष्ट बटन दबाए जाने पर कार्य करें -

उदाहरण

def clear():
   global txt, ans, res
   txt = ""
   equation.set("")
   res = False

अब जब हमने फ़ंक्शन को परिभाषित कर दिया है, तो हम मुख्य फ़ंक्शन शुरू कर सकते हैं और GUI घटकों पर काम करना शुरू कर सकते हैं।

if __name__ == "__main__":
   window = Tk()
   window.configure(background="black")
   window.title("Calculator")
   window.iconbitmap("assets\Calculator\Logo.ico")
   window.geometry("343x417")
   window.resizable(0,0)

कोड की उपरोक्त पंक्तियाँ एक आदर्श कैलकुलेटर की संरचना करेंगी।

नोट - त्रुटियों से बचने के लिए, सुनिश्चित करें कि आप ऊपर दिए गए कोड के अनुसार सटीक फ़ाइल संरचना का पालन करते हैं। कैलकुलेटर फोल्डर के अंदर लोगो आइकन को सेव करें जो एसेट फोल्डर में है।

नीचे दिए गए प्रारूप का पालन करें -

+---Working Directory
   +---Calculator.py
   +---assets
      +---Calculator
         +---All the icons.

अगला, आइए टेक्स्ट फ़ील्ड डिज़ाइन करें जहाँ हम संख्याएँ देखेंगे।

equation = StringVar()

txt_field = Entry(relief=RIDGE,textvariable=equation,bd=10,font=("Aerial",20),bg="powder blue")

txt_field.grid(columnspan=4,ipady=10,ipadx=10,sticky="nsew")

अब, हम एक-एक करके GUI विंडो में आइकन जोड़ने की दोहराई जाने वाली प्रक्रिया का पालन करेंगे। नीचे इसका एक उदाहरण है, बाकी के लिए इसका अनुसरण करें या इस लेख के अंत में पूरे कोड से इसे कॉपी करें।

उदाहरण

width=80
height=80
img1 = Image.open("assets/Calculator/one.PNG")
img1 = img1.resize((width,height))
oneImage = ImageTk.PhotoImage(img1)
button1 = Button(window, image=oneImage,bg="white",command = lambda:press(1),height=height,width=width)
button1.grid(row=2,column=0,sticky="nsew")

उपरोक्त पंक्तियों के समान, बटन 2, बटन 3 और तब तक का पालन करें जब तक आप सभी संख्याओं और प्रतीकों को कवर नहीं कर लेते।

और बस। यदि आप अभी प्रोग्राम चलाते हैं, तो आपको एक बहुत ही सारगर्भित दिखने वाला कैलकुलेटर देखना होगा।

यदि आप अनुवर्ती कार्रवाई में सक्षम नहीं हैं, तो आप नीचे से पूरा कोड ले सकते हैं।

उदाहरण

from tkinter import *
from PIL import Image
from PIL import ImageTk

txt = ""
res = False
ans = 0

def press(num):
   global txt, ans, res
   if (res==True):
      txt = ans
      res = False
   txt = txt + str(num)
   equation.set(txt)
def equal():
   try:
      global txt, ans, res
      ans = str(eval(txt))
      equation.set(ans)
      res = True
   except:
      equation.set("ERROR : Invalid Equation")
      txt=""
def clear():
   global txt, ans, res
   txt = ""
   equation.set("")
   res = False
if __name__ == "__main__":
   window = Tk()
   window.configure(background="black")
   window.title("Calculator")
   window.iconbitmap("assets\Calculator\Logo.ico")
   window.geometry("343x417")
   window.resizable(0,0)
   equation = StringVar()
   txt_field = Entry(relief=RIDGE,textvariable=equation,bd=10,font=("Aerial",20),bg="powder blue")
   txt_field.grid(columnspan=4,ipady=10,ipadx=10,sticky="nsew")
   width=80
   height=80
   img1 = Image.open("assets/Calculator/one.PNG")
   img1 = img1.resize((width,height))
   oneImage = ImageTk.PhotoImage(img1)
   button1 = Button(window, image=oneImage,bg="white",command =          lambda:press(1),height=height,width=width)
   button1.grid(row=2,column=0,sticky="nsew")
   img2 = Image.open("assets/Calculator/two.PNG")
   img2 = img2.resize((width,height))
   twoImage = ImageTk.PhotoImage(img2)
   button2 = Button(window, image=twoImage,bg="white",command =    lambda:press(2),height=height,width=width)
   button2.grid(row=2,column=1,sticky="nsew")
   img3 = Image.open("assets/Calculator/three.PNG")
   img3 = img3.resize((width,height))
   threeImage = ImageTk.PhotoImage(img3)
   button3 = Button(window, image=threeImage,bg="white",command =    lambda:press(3),height=height,width=width)
   button3.grid(row=2,column=2,sticky="nsew")
   img4 = Image.open("assets/Calculator/four.PNG")
   img4 = img4.resize((width,height))
   fourImage = ImageTk.PhotoImage(img4)
   button4 = Button(window, image=fourImage,bg="white",command =    lambda:press(4),height=height,width=width)
   button4.grid(row=3,column=0,sticky="nsew")
   img5 = Image.open("assets/Calculator/five.PNG")
   img5 = img5.resize((width,height))
   fiveImage = ImageTk.PhotoImage(img5)
   button5 = Button(window, image=fiveImage,bg="white",command =    lambda:press(5),height=height,width=width)
   button5.grid(row=3,column=1,sticky="nsew")
   img6 = Image.open("assets/Calculator/six.PNG")
   img6 = img6.resize((width,height))
   sixImage = ImageTk.PhotoImage(img6)
   button6 = Button(window, image=sixImage,bg="white",command =    lambda:press(6),height=height,width=width)
   button6.grid(row=3,column=2,sticky="nsew")
   img7 = Image.open("assets/Calculator/seven.PNG")
   img7 = img7.resize((width,height))
   sevenImage = ImageTk.PhotoImage(img7)
   button7 = Button(window, image=sevenImage,bg="white",command =    lambda:press(7),height=height,width=width)
   button7.grid(row=4,column=0,sticky="nsew")
   img8 = Image.open("assets/Calculator/eight.PNG")
   img8 = img8.resize((width,height))
   eightImage = ImageTk.PhotoImage(img8)
   button8 = Button(window, image=eightImage,bg="white",command =    lambda:press(8),height=height,width=width)
   button8.grid(row=4,column=1,sticky="nsew")
   img9 = Image.open("assets/Calculator/nine.PNG")
   img9 = img9.resize((width,height))
   nineImage = ImageTk.PhotoImage(img9)
   button9 = Button(window, image=nineImage,bg="white",command =    lambda:press(9),height=height,width=width)
   button9.grid(row=4,column=2,sticky="nsew")
   img0 = Image.open("assets/Calculator/zero.PNG")
   img0 = img0.resize((width,height))
   zeroImage = ImageTk.PhotoImage(img0)
   button0 = Button(window, image=zeroImage,bg="white",command =    lambda:press(0),height=height,width=width)
   button0.grid(row=5,column=1,sticky="nsew")
   imgx = Image.open("assets/Calculator/multiply.PNG")
   imgx = imgx.resize((width,height))
   multiplyImage = ImageTk.PhotoImage(imgx)
   buttonx = Button(window, image=multiplyImage,bg="white",command =    lambda:press("*"),height=height,width=width)
   buttonx.grid(row=2,column=3,sticky="nsew")
   imgadd = Image.open("assets/Calculator/add.PNG")
   imgadd = imgadd.resize((width,height))
   addImage = ImageTk.PhotoImage(imgadd)
   buttonadd = Button(window, image=addImage,bg="white",command =    lambda:press("+"),height=height,width=width)
   buttonadd.grid(row=3,column=3,sticky="nsew")
   imgdiv = Image.open("assets/Calculator/divide.PNG")
   imgdiv = imgdiv.resize((width,height))
   divImage = ImageTk.PhotoImage(imgdiv)
   buttondiv = Button(window, image=divImage,bg="white",command =    lambda:press("/"),height=height,width=width)
   buttondiv.grid(row=5,column=3,sticky="nsew")
   imgsub = Image.open("assets/Calculator/subtract.PNG")
   imgsub = imgsub.resize((width,height))
   subImage = ImageTk.PhotoImage(imgsub)
   buttonsub = Button(window, image=subImage,bg="white",command = lambda:press("-   "),height=height,width=width)
   buttonsub.grid(row=4,column=3,sticky="nsew")
   imgeq = Image.open("assets/Calculator/equal.PNG")
   imgeq = imgeq.resize((width,height))
   eqImage = ImageTk.PhotoImage(imgeq)
   buttoneq = Button(window, image=eqImage,bg="white",command = equal,height=height,width=width)
   buttoneq.grid(row=5,column=2,sticky="nsew")
   imgclear = Image.open("assets/Calculator/clear.PNG")
   imgclear = imgclear.resize((width,height))
   clearImage = ImageTk.PhotoImage(imgclear)
   buttonclear = Button(window, image=clearImage,bg="white",command =    clear,height=height,width=width)
buttonclear.grid(row=5,column=0,sticky="nsew")

window.mainloop()

यदि आपको उपरोक्त कार्यक्रम के साथ प्रारूपण संबंधी समस्याएं आ रही हैं, तो आप इसे https://github.com/SVijayB/PyHub/blob/master/Graphics/Simple%20Calculator.py से भी प्राप्त कर सकते हैं।

आउटपुट

पायथन में टिंकर का उपयोग करके एक साधारण जीयूआई कैलकुलेटर कैसे बनाएं


  1. पायथन में टिंकर प्रोग्रामिंग

    टिंकर पायथन के लिए मानक जीयूआई पुस्तकालय है। टिंकर के साथ संयुक्त होने पर पायथन GUI एप्लिकेशन बनाने का एक तेज़ और आसान तरीका प्रदान करता है। Tkinter, Tk GUI टूलकिट को एक शक्तिशाली ऑब्जेक्ट-ओरिएंटेड इंटरफ़ेस प्रदान करता है। Tkinter का उपयोग करके GUI एप्लिकेशन बनाना एक आसान काम है। आपको बस निम्नलिखित

  1. पायथन टिंकर का उपयोग करके सरल पंजीकरण फॉर्म

    Tkinter GUI (ग्राफिकल यूजर इंटरफेस) विकसित करने के लिए एक अजगर पुस्तकालय है। हम विंडोज़ और अन्य सभी ग्राफिकल यूजर इंटरफेस बनाने के लिए यूआई (यूजर इंटरफेस) का एक एप्लीकेशन बनाने के लिए टिंकर लाइब्रेरी का उपयोग करते हैं। यदि आप अजगर 3.x (जो अनुशंसित है) का उपयोग कर रहे हैं, तो टिंकर एक मानक पैकेज के

  1. पायथन में टिंकर का उपयोग करके रंग खेल

    जीयूआई अनुप्रयोगों के विकास के लिए टिंकर बहुत लोकप्रिय और आसान है। tkinter का उपयोग करके आसानी से GUI गेम विकसित करें। यहां भी हम कलर गेम विकसित करने की कोशिश कर रहे हैं। इस गेम में खिलाड़ी को स्क्रीन पर दिखाई देने वाले शब्द का रंग दर्ज करना होता है और इसलिए स्कोर एक से बढ़ जाता है, इस गेम को खेलने