टिंकर जीयूआई लाइब्रेरी के साथ पायथन में डेस्कटॉप ऐप बनाना शुरू करें

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

यहां, हम टिंकर जीयूआई मॉड्यूल की मूल बातें देखते हैं।

टिंकर सेटअप

आमतौर पर, यदि आपने पायथन 3 से शुरू होकर, पायथन का बाद का संस्करण स्थापित किया है, तो आपको अलग से टिंकर स्थापित करने की आवश्यकता नहीं है। पुस्तकालय पुराने पायथन संस्करणों के साथ काम नहीं कर सकता है, हालांकि। मैक और लिनक्स उपयोगकर्ताओं के लिए यह एक आम समस्या है, क्योंकि ये ओएस आमतौर पर डिफ़ॉल्ट रूप से पायथन के पुराने संस्करणों के साथ आते हैं।

आम तौर पर, टिंकर मॉड्यूल का उपयोग करने के लिए, सुनिश्चित करें कि आप आधिकारिक python.org वेबसाइट से अपने पीसी पर पायथन के नवीनतम संगत संस्करण को डाउनलोड और इंस्टॉल करते हैं।

यदि आप मैक पर हैं, तो वैकल्पिक रूप से, आप ActiveTcl का नवीनतम संस्करण डाउनलोड कर सकते हैं, जो ActiveState से एक टिंकर कंपाइलर है।

टिंकर का उपयोग कैसे करें

टिंकर अपने अंतर्निर्मित टीके वर्ग पर निर्भर करता है। और यह जीयूआई के भीतर सभी घटनाओं को mainloop में लपेटता है। इस प्रकार, mainloop आवरण अपने tkinter कोड निष्पादन योग्य बनाता है।

टिंकर के साथ आरंभ करने के लिए:

 from tkinter import Tk
Tk().mainloop()

ऊपर दिए गए कोड को चलाने से एक खाली टिंकर फ्रेम बन जाता है।

हालाँकि, टिंकर की अनुकूलन सुविधाएँ इसके बिल्ट-इन विजेट्स में हैं।

इन विजेट का उपयोग करने के लिए, आप के साथ tkinter आयात टी से बदल कर tkinter से उन्हें आयात कर सकते हैं:

 from tkinter import *
t = Tk()
t.mainloop()

आप ज्योमेट्री फ़ंक्शन के साथ विंडो के आकार को भी समायोजित कर सकते हैं और फिर टिंकर के शीर्षक विजेट का उपयोग करके एक शीर्षक निर्दिष्ट कर सकते हैं :

 t = Tk()
t.geometry("600x600")
t.title("Tk Tutorial")
t.mainloop()

टिंकर लेबल विजेट

टिंकर आपको लेबल विजेट का उपयोग करके सीधे जीयूआई को सादा पाठ लिखने देता है:

 t = Tk()
Label(t, text = "MUO Tkinter tutorial").grid()
t.mainloop()

हालाँकि, ग्रिड () विधि, पैक () विधि का एक विकल्प है। यह आपके विजेट्स को GUI से चिपका देता है, जिससे वे दृश्यमान हो जाते हैं।

आप अपने लेबल टेक्स्ट के लिए एक फ़ॉन्ट भी निर्दिष्ट कर सकते हैं:

 t = Tk()
Label(t, text = "MUO Tkinter tutorial", font=(60)).grid()
t.mainloop()

टिंकर में बटन विजेट के साथ कार्य करना

बटन टिंकर में सबसे अधिक उपयोग किए जाने वाले कुछ विजेट हैं। और आप इन क्लिक करने योग्य बटनों को विभिन्न अंतर्निहित बटन विजेट्स का उपयोग करके अपने GUI में जोड़ सकते हैं।

यहां बटन विजेट का उपयोग करके अपने GUI में प्राथमिक बटन जोड़ने का तरीका बताया गया है:

 t = Tk()
Button(t, text = "Clickable", bg = "black", fg = "white").grid()
t.mainloop()

bg और fg कीवर्ड क्रमशः बटन की पृष्ठभूमि का रंग और उसके भीतर के टेक्स्ट के रंग का वर्णन करते हैं।

आप ऊंचाई और चौड़ाई के मापदंडों को शामिल करके बटन के आयाम को भी समायोजित कर सकते हैं:

 t = Tk()
Button(t, text = "Clickable", bg = "black", fg = "white", height="2", width="10").grid()
t.mainloop()

यहाँ उसके लिए आउटपुट है:

और यदि आप बटन को और अधिक आकर्षक बनाना चाहते हैं, तो आप एक राहत कीवर्ड शामिल कर सकते हैं और फिर इसकी सीमा चौड़ाई समायोजित कर सकते हैं:

 t = Tk()
Button(t, text="Clickable", bg="blue", fg="white",
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

और यह इस तरह दिखता है:

यह कैसे होता है यह देखने के लिए RAISED को FLAT से बदलें।

आप जितने चाहें उतने बटन जोड़ सकते हैं। लेकिन आप सामग्री ओवरलैप से बचने के लिए सावधान रहें।

ओवरलैप से बचने के लिए, आप प्रत्येक बटन के लिए पंक्ति और स्तंभ स्थिति निर्दिष्ट कर सकते हैं:

 t = Tk()
Button(t, text=1, bg="black", fg="white").grid(row=1, column=1)
Button(t, text=2, bg="black", fg="white").grid(row=2, column=1)
Button(t, text=3, bg="black", fg="white").grid(row=3, column=1)
Button(t, text=4, bg="black", fg="white").grid(row=4, column=1)
t.mainloop()

एक वैकल्पिक कमांड कीवर्ड, हालांकि, बटन विजेट में ईवेंट जोड़ता है। संक्षेप में, यह एक वैकल्पिक फ़ंक्शन को एंकर करता है जो एक बटन पर क्लिक करने पर कुछ घटनाओं को संभालता है।

उदाहरण के लिए, नीचे दिया गया कोड, प्रत्येक बटन पर क्लिक करने पर उसके मान को 6 से गुणा कर देता है। और यह एक पूर्व-परिभाषित फ़ंक्शन पर आधारित है:

 def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = "black", fg = "white", width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = "black", fg = "white", width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = "black", fg = "white", width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = "black", fg = "white", width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

उपरोक्त कोड में, बटनप्रेस गुणन घटना को संभालता है। बटन विजेट तब अज्ञात लैम्ब्डा फ़ंक्शन का उपयोग करके उस ईवेंट हैंडलर को इंगित करता है।

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

उस ने कहा, आप हर बटन के लिए पहिया को फिर से नहीं बनाना चाहते हैं जैसा आपने पिछले कोड में किया था। यह निष्पादन समय को धीमा कर देता है, साथ ही यह आपके कोड को पढ़ने और संकीर्ण करने में कठिन बनाता है।

लेकिन आप इस पुनरावृत्ति से बचने के लिए लूप के लिए उपयोग कर सकते हैं

तो यहाँ उपरोक्त कोड का एक छोटा और बेहतर संस्करण है:

 def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = "black", fg = "white", width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

आइए आगे अपने GUI में मेनू बटन जोड़ने के लिए for लूप की शक्ति का अन्वेषण करें:

 from tkinter import *
t = Tk()
buttons = ["Files", "Dashboard", "Menu", "Settings", "Help"]
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg="blue", fg="white").grid(row=5, column=i)
m += 1
t.mainloop()

अपने GUI में चेक बटन जोड़ना भी काफी आसान है:

 t = Tk()
Checkbutton(t, text = "Select option").grid()
t.mainloop()

लूप के लिए उस चेक बटन को गुणा करने के लिए स्वतंत्र महसूस करें, जैसा कि हमने पहले किया था।

टिंकर के मेनू विजेट के साथ ड्रॉपडाउन मेनू कैसे बनाएं

मेनू विजेट आपको tkinter में क्लिक करने योग्य ड्रॉपडाउन मेनू डिज़ाइन करने देता है।

जैसा कि पहले कहा गया है, टिंकर कई विजेट विकल्प प्रदान करता है। और आप अपना ड्रॉपडाउन मेनू डिजाइन करते समय उनमें से कुछ का उपयोग करेंगे।

ड्रॉपडाउन करते समय आपके सामने आने वाले कुछ सामान्य विजेट विकल्प यहां दिए गए हैं:

  • add_cascade: यह एक मेनू लेबल प्रदर्शित करता है और इसे वहीं चिपका देता है जहां यह संबंधित है।
  • add_separator: यह सबमेनस को सीमांकित करता है और उन्हें ऊपरी और निचले सबमेनस में समूहित करता है
  • add_command: यह वह जगह है जहाँ आप अपने सबमेनू को एक नाम देते हैं। आखिरकार, यह एक कमांड तर्क स्वीकार करता है जहां आप एक ईवेंट हैंडलर निर्दिष्ट कर सकते हैं।

यहां एक ड्रॉपडाउन उदाहरण दिया गया है जो इन तीन विकल्पों का उपयोग करता है:

 from tkinter import *
t = Tk()
fileOptions = ["New", "open", "Save", "Save as"]
fileOptionsAfterseparator = ["Import", "Export", "Exit"]
viewOptions = ["Transform", "Edit", "Create"]
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label="File", menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label="View", menu=View)
t.config(menu=menuBar)
t.mainloop()

देखें कि यह कैसा दिखता है:

टिंकर विकल्प मेनू

एक विकल्पमेनू , मेनू ड्रॉपडाउन के विपरीत, अपने लेबल को एक चयनित विकल्प में बदल देता है।

यद्यपि आप विकल्प मेनू के लिए एक डिफ़ॉल्ट लेबल मान निर्दिष्ट कर सकते हैं, लेकिन इसमें डिफ़ॉल्ट रूप से कोई लेबल नहीं होता है।

संबंधित: शुरुआती के लिए उपयुक्त पायथन परियोजना विचार

टिंकर में विकल्प मेनू बनाने का तरीका यहां दिया गया है :

 t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set("MUO") #specify a default value for the menu icon
OptionMenu(t, Omenu, "MUO", "Amazon", "Tutorial").grid()
t.mainloop()

टिंकर के साथ एक पुन: प्रयोज्य डेस्कटॉप ऐप बनाएं

टिंकर सुविधाओं की एक सरणी प्रदान करता है जो आपको इंटरैक्टिव जीयूआई डेस्कटॉप ऐप बनाने में मदद करता है। हालांकि इसमें कुछ अन्य पायथन जीयूआई मॉड्यूल की तरह कई लचीली सौंदर्यीकरण विशेषताएं नहीं हो सकती हैं, फिर भी यह खोज के लायक एक आसान उपकरण है। और जबकि यहां उदाहरण केवल कुछ मूलभूत अवधारणाओं को दिखाते हैं , टिंकर अधिक उन्नत सुविधाएं प्रदान करता है जिन्हें आप आज़मा सकते हैं।

उस ने कहा, आप एक जीयूआई डेस्कटॉप कैलकुलेटर बना सकते हैं, एक मिनी टेक्स्ट एडिटर बना सकते हैं, या यहां तक ​​​​कि अपनी इन्वेंट्री को प्रबंधित करने के लिए एक जीयूआई डेस्कटॉप ऐप भी बना सकते हैं। यदि आप अपने पंख फैलाना चाहते हैं और एक डेस्कटॉप जीयूआई प्रमुख बनना चाहते हैं, तो आप पाइथन के अन्य जीयूआई मॉड्यूल भी देख सकते हैं।