பைத்தானின் நிலையான GUI நூலகமான Tkinter ஐ ஆராயுங்கள், மேலும் குறுக்கு-தளம் டெஸ்க்டாப் பயன்பாடுகளை எவ்வாறு உருவாக்குவது என்பதை அறிக. இந்த வழிகாட்டி விட்ஜெட்டுகள், தளவமைப்புகள், நிகழ்வு கையாளுதல் மற்றும் சிறந்த நடைமுறைகளை உள்ளடக்கியது.
பைத்தான் டெஸ்க்டாப் பயன்பாடுகள்: Tkinter GUI மேம்பாட்டிற்கான விரிவான வழிகாட்டி
பைத்தான் அதன் பல்துறைத்திறனுக்காகப் பெயர் பெற்றது, வலை மேம்பாடு, தரவு அறிவியல் மற்றும் ஸ்கிரிப்டிங் ஆகியவற்றில் பயன்பாடுகளைக் காண்கிறது. ஆனால் கவர்ச்சிகரமான டெஸ்க்டாப் பயன்பாடுகளை உருவாக்க இது பயன்படுத்தப்படலாம் என்பது உங்களுக்குத் தெரியுமா? பைத்தானின் நிலையான GUI (கிராஃபிகல் பயனர் இடைமுகம்) நூலகமான Tkinter, குறுக்கு-தளம் டெஸ்க்டாப் பயன்பாடுகளை உருவாக்க ஒரு எளிய மற்றும் சக்திவாய்ந்த வழியை வழங்குகிறது. இந்த வழிகாட்டி Tkinter இன் அடிப்படைகள் மூலம் உங்களை அழைத்துச் செல்லும், மேலும் உங்கள் சொந்த பைத்தான் மூலம் இயங்கும் டெஸ்க்டாப் பயன்பாடுகளை உருவாக்க தேவையான அறிவை உங்களுக்கு வழங்கும்.
ஏன் Tkinter?
குறிப்பிட்டவைகளை ஆராய்வதற்கு முன், பைத்தான் GUI மேம்பாட்டிற்கான ஒரு பிரபலமான தேர்வாக Tkinter ஏன் உள்ளது என்பதைப் புரிந்துகொள்வோம்:
- பைத்தானின் நிலையான நூலகத்தின் ஒரு பகுதி: Tkinter பெரும்பாலான பைத்தான் விநியோகங்களுடன் முன்னரே நிறுவப்பட்டுள்ளது, வெளிப்புற நிறுவல்களின் தேவையை நீக்குகிறது மற்றும் திட்ட அமைப்பை எளிதாக்குகிறது.
- குறுக்கு-தளம் இணக்கத்தன்மை: Tkinter பயன்பாடுகள் விண்டோஸ், macOS மற்றும் லினக்ஸில் தடையின்றி இயங்குகின்றன, இது பரந்த அணுகலைக் கொண்ட பயன்பாடுகளை உருவாக்குவதற்கு சிறந்த தேர்வாக அமைகிறது.
- கற்றுக்கொள்வதற்கு எளிதானது: Tkinter இன் ஒப்பீட்டளவில் எளிய API ஆனது ஆரம்பநிலைக்கு எளிதாக அணுகக்கூடியதாக உள்ளது, அதே நேரத்தில் மேலும் சிக்கலான திட்டங்களுக்கு போதுமான நெகிழ்வுத்தன்மையை வழங்குகிறது.
- பெரிய சமூகம் மற்றும் வளங்கள்: ஒரு பெரிய ஆன்லைன் சமூகம் Tkinter டெவலப்பர்களுக்கான ஏராளமான ஆவணங்கள், பயிற்சிகள் மற்றும் ஆதரவை வழங்குகிறது.
- விரைவான முன்மாதிரி: Tkinter GUI பயன்பாடுகளின் விரைவான வளர்ச்சி மற்றும் முன்மாதிரிக்கு அனுமதிக்கிறது.
Tkinter உடன் தொடங்குதல்
Tkinter பயன்பாடுகளை உருவாக்கத் தொடங்க, உங்கள் கணினியில் பைத்தான் நிறுவ வேண்டும். பெரும்பாலான இயக்க முறைமைகளில் பைத்தான் முன்னரே நிறுவப்பட்டுள்ளது, ஆனால் சமீபத்திய அம்சங்கள் மற்றும் பாதுகாப்பு இணைப்புகளை வைத்திருப்பதை உறுதிசெய்ய, அதிகாரப்பூர்வ பைத்தான் வலைத்தளத்திலிருந்து (python.org) சமீபத்திய பதிப்பை பதிவிறக்கம் செய்ய பரிந்துரைக்கப்படுகிறது.
ஒரு அடிப்படை சாளரத்தை உருவாக்குதல்
ஒரு எளிய சாளரத்தை உருவாக்குவதன் மூலம் ஆரம்பிக்கலாம். இது எந்தவொரு Tkinter பயன்பாட்டிற்கும் அடித்தளமாக உள்ளது.
import tkinter as tk
# Create the main application window
root = tk.Tk()
# Set the window title
root.title("My First Tkinter Application")
# Set the window size (widthxheight)
root.geometry("400x300")
# Run the main event loop
root.mainloop()
விளக்கம்:
- `import tkinter as tk`: Tkinter தொகுதியை இறக்குமதி செய்து, சுருக்கத்திற்காக `tk` என்ற புனைப்பெயரை ஒதுக்குகிறது.
- `root = tk.Tk()`: பிரதான பயன்பாட்டு சாளரத்தை உருவாக்குகிறது, பெரும்பாலும் "root" சாளரம் என்று குறிப்பிடப்படுகிறது.
- `root.title("My First Tkinter Application")`: சாளரத்தின் தலைப்பை அமைக்கிறது, இது சாளரத்தின் தலைப்புப் பட்டியில் காண்பிக்கப்படும்.
- `root.geometry("400x300")`: சாளரத்தின் ஆரம்ப அளவை 400 பிக்சல்கள் அகலமும், 300 பிக்சல்கள் உயரமும் அமைக்கின்றது. தேவைக்கேற்ப இந்த மதிப்புகளை சரிசெய்யலாம்.
- `root.mainloop()`: Tkinter நிகழ்வு சுழற்சியைத் தொடங்குகிறது, இது நிகழ்வுகளை (எ.கா., பொத்தான் கிளிக்குகள், விசை அழுத்தங்கள்) கேட்கிறது மற்றும் பயனர் அதை மூடும் வரை சாளரத்தைத் திறந்து வைத்திருக்கும். உங்கள் பயன்பாட்டை ஊடாடும் வகையில் உருவாக்குவதற்கு இது முக்கியமானது.
இந்தக் குறியீட்டை பைத்தான் கோப்பாகச் சேமிக்கவும் (எ.கா., `my_app.py`) மற்றும் இயக்கவும். "My First Tkinter Application" என்ற தலைப்புடன் கூடிய வெற்று சாளரத்தைக் காண வேண்டும்.
Tkinter விட்ஜெட்டுகள்: உங்கள் GUI இன் கட்டுமான தொகுதிகள்
விட்ஜெட்டுகள் என்பது உங்கள் GUI ஐ உருவாக்கும் தனிப்பட்ட கூறுகள், அவை பொத்தான்கள், லேபிள்கள், உரை பெட்டிகள் மற்றும் பல. ஊடாடும் பயன்பாடுகளை உருவாக்குவதற்கு Tkinter பரந்த அளவிலான விட்ஜெட்களை வழங்குகிறது.
பொதுவான Tkinter விட்ஜெட்டுகள்
- லேபிள்: நிலையான உரை அல்லது படங்களைக் காண்பிக்கும்.
- பொத்தான்: கிளிக் செய்யும் போது ஒரு செயலைத் தூண்டுகிறது.
- உள்ளிீடு: பயனர்கள் ஒரு வரி உரை உள்ளிட அனுமதிக்கிறது.
- உரை: பயனர்கள் பல வரி உரை உள்ளிட அனுமதிக்கிறது.
- பிரேம்: மற்ற விட்ஜெட்டுகளுக்கான ஒரு கொள்கலனாக செயல்படுகிறது, இது அமைப்பு மற்றும் தளவமைப்புக்கு உதவுகிறது.
- செக்பட்டன்: மாறக்கூடிய பூலியன் விருப்பத்தை பிரதிபலிக்கிறது.
- ரேடியோபட்டன்: பயனர்கள் ஒரு குழுவிலிருந்து ஒரு விருப்பத்தைத் தேர்ந்தெடுக்க அனுமதிக்கிறது.
- பட்டியல் பெட்டி: பயனர் தேர்ந்தெடுக்க வேண்டிய உருப்படிகளின் பட்டியலைக் காண்பிக்கும்.
- காம்போபாக்ஸ்: முன் வரையறுக்கப்பட்ட தொகுப்பிலிருந்து ஒரு விருப்பத்தைத் தேர்ந்தெடுக்க பயனர்களை அனுமதிக்கும் கீழ்தோன்றும் பட்டியல்.
- கேன்வாஸ்: தனிப்பயன் கிராபிக்ஸ் மற்றும் காட்சிப்படுத்தல்களை உருவாக்குவதற்கான வரைதல் பரப்பை வழங்குகிறது.
உங்கள் சாளரத்தில் விட்ஜெட்களைச் சேர்ப்பது
உங்கள் சாளரத்தில் விட்ஜெட்களைச் சேர்க்க, நீங்கள் விட்ஜெட் வகுப்புகளின் நிகழ்வுகளை உருவாக்கி, அவற்றை தளவமைப்பு மேலாளர்களைப் பயன்படுத்தி சாளரத்திற்குள் வைக்க வேண்டும் (அடுத்த பகுதியில் விளக்கப்பட்டுள்ளது).
import tkinter as tk
root = tk.Tk()
root.title("Adding Widgets")
root.geometry("400x300")
# Create a Label widget
label = tk.Label(root, text="Hello, Tkinter!")
# Create a Button widget
button = tk.Button(root, text="Click Me!")
# Create an Entry widget
entry = tk.Entry(root)
# Place the widgets in the window
label.pack()
button.pack()
entry.pack()
root.mainloop()
விளக்கம்:
- `label = tk.Label(root, text="Hello, Tkinter!")`: "Hello, Tkinter!" என்ற உரையுடன் ஒரு லேபிள் விட்ஜெட்டை உருவாக்கி, அதை `root` சாளரத்திற்குள் வைக்கிறது.
- `button = tk.Button(root, text="Click Me!")`: "Click Me!" என்ற உரையுடன் ஒரு பொத்தான் விட்ஜெட்டை உருவாக்கி, அதை `root` சாளரத்திற்குள் வைக்கிறது.
- `entry = tk.Entry(root)`: ஒரு நுழைவு விட்ஜெட்டை (ஒரு உரை உள்ளீட்டு புலம்) உருவாக்கி, அதை `root` சாளரத்திற்குள் வைக்கிறது.
- `label.pack()`, `button.pack()`, `entry.pack()`: சாளரத்தில் விட்ஜெட்களை ஏற்பாடு செய்ய `pack()` தளவமைப்பு மேலாளரைப் பயன்படுத்துகிறது. `pack()` மேலாளர் விட்ஜெட்களை ஒன்றன் பின் ஒன்றாக, செங்குத்தாகவோ அல்லது கிடைமட்டமாகவோ வைக்கிறது.
தளவமைப்பு மேலாளர்கள்: உங்கள் GUI இல் விட்ஜெட்களை ஏற்பாடு செய்தல்
தளவமைப்பு மேலாளர்கள் உங்கள் சாளரத்திற்குள் விட்ஜெட்களின் நிலை மற்றும் அளவைக் கட்டுப்படுத்துவதற்கு அவசியமானவை. Tkinter மூன்று முக்கிய தளவமைப்பு மேலாளர்களை வழங்குகிறது:
- `pack()`: மிக எளிமையான தளவமைப்பு மேலாளர், இது செங்குத்தாகவோ அல்லது கிடைமட்டமாகவோ விட்ஜெட்களை பிளாக் போன்ற முறையில் அமைக்கிறது.
- `grid()`: விட்ஜெட்களை கட்டத்தில் (வரிசைகள் மற்றும் நெடுவரிசைகள்) அமைக்கிறது, இது மிகவும் துல்லியமான இடத்தை அனுமதிக்கிறது.
- `place()`: ஒவ்வொரு விட்ஜெட்டின் சரியான ஆயத்தொலைவுகள் (x, y) மற்றும் அளவு (அகலம், உயரம்) ஆகியவற்றை நீங்கள் குறிப்பிட அனுமதிக்கிறது, இது இடத்தின் மீது அதிக கட்டுப்பாட்டை வழங்குகிறது, ஆனால் அதிக கையேடு முயற்சியும் தேவைப்படுகிறது.
`pack()` தளவமைப்பு மேலாளர்
முந்தைய எடுத்துக்காட்டில் நிரூபிக்கப்பட்டபடி, `pack()` பயன்படுத்துவதற்கு எளிதான தளவமைப்பு மேலாளர் ஆகும். விட்ஜெட்களை ஒரு நேரடியான முறையில் ஏற்பாடு செய்யக்கூடிய எளிய தளவமைப்புகளுக்கு இது பொருத்தமானது.
import tkinter as tk
root = tk.Tk()
root.title("Pack Layout")
root.geometry("400x300")
label1 = tk.Label(root, text="Label 1", bg="red")
label2 = tk.Label(root, text="Label 2", bg="green")
label3 = tk.Label(root, text="Label 3", bg="blue")
label1.pack(fill=tk.X)
label2.pack(side=tk.LEFT, fill=tk.Y)
label3.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
root.mainloop()
விளக்கம்:
- `fill=tk.X`: லேபிளை X-அச்சில் சாளரத்தின் முழு அகலத்தையும் நிரப்புகிறது.
- `side=tk.LEFT`: லேபிளை சாளரத்தின் இடது பக்கத்தில் வைக்கிறது.
- `fill=tk.Y`: லேபிளை Y-அச்சில் கிடைக்கும் இடத்தின் முழு உயரத்தையும் நிரப்புகிறது.
- `fill=tk.BOTH`: லேபிளை X மற்றும் Y அச்சுகளில் கிடைக்கும் முழு இடத்தையும் நிரப்புகிறது.
- `expand=True`: லேபிளை விரிவுபடுத்தவும், சாளரத்தில் மீதமுள்ள இடத்தை எடுத்துக்கொள்ளவும் அனுமதிக்கிறது.
`grid()` தளவமைப்பு மேலாளர்
`grid()` தளவமைப்பு மேலாளர் விட்ஜெட்களை ஏற்பாடு செய்ய மிகவும் கட்டமைக்கப்பட்ட வழியை வழங்குகிறது. ஒவ்வொரு விட்ஜெட்டிற்கான வரிசை மற்றும் நெடுவரிசையை நீங்கள் குறிப்பிடலாம், இது ஒரு கட்டம் போன்ற தளவமைப்பை உருவாக்குகிறது.
import tkinter as tk
root = tk.Tk()
root.title("Grid Layout")
root.geometry("400x300")
label1 = tk.Label(root, text="Name:")
entry1 = tk.Entry(root)
label2 = tk.Label(root, text="Email:")
entry2 = tk.Entry(root)
button = tk.Button(root, text="Submit")
label1.grid(row=0, column=0, sticky=tk.W)
entry1.grid(row=0, column=1)
label2.grid(row=1, column=0, sticky=tk.W)
entry2.grid(row=1, column=1)
button.grid(row=2, column=1, sticky=tk.E)
root.mainloop()
விளக்கம்:
- `row=0, column=0`: விட்ஜெட்டை கட்டத்தின் முதல் வரிசையிலும் முதல் நெடுவரிசையிலும் வைக்கிறது.
- `sticky=tk.W`: விட்ஜெட்டை அதன் செல்லின் மேற்குப் பக்கத்திற்கு (இடது) சீரமைக்கிறது. மற்ற விருப்பங்களில் `tk.E` (கிழக்கு/வலது), `tk.N` (வடக்கு/மேல்), `tk.S` (தெற்கு/கீழ்), மற்றும் `tk.NW` (வடமேற்கு/மேல்-இடது) போன்ற சேர்க்கைகள் அடங்கும்.
`place()` தளவமைப்பு மேலாளர்
`place()` தளவமைப்பு மேலாளர் விட்ஜெட் இடத்தின் மீது மிகவும் துல்லியமான கட்டுப்பாட்டை உங்களுக்கு வழங்குகிறது, ஒவ்வொரு விட்ஜெட்டின் சரியான x மற்றும் y ஆயத்தொலைவுகள் மற்றும் அகலம் மற்றும் உயரத்தை குறிப்பிட உங்களை அனுமதிக்கிறது.
import tkinter as tk
root = tk.Tk()
root.title("Place Layout")
root.geometry("400x300")
label = tk.Label(root, text="Precise Placement", bg="yellow")
button = tk.Button(root, text="Click Here", bg="lightgreen")
label.place(x=50, y=50, width=150, height=30)
button.place(x=200, y=100, width=100, height=40)
root.mainloop()
விளக்கம்:
- `x=50, y=50`: விட்ஜெட்டின் மேல்-இடது மூலையை சாளரத்தின் மேல்-இடது மூலையுடன் தொடர்புடைய ஆயத்தொலைவுகள் (50, 50) இல் வைக்கிறது.
- `width=150, height=30`: விட்ஜெட்டின் அகலத்தை 150 பிக்சல்களாகவும், உயரத்தை 30 பிக்சல்களாகவும் அமைக்கிறது.
நிகழ்வு கையாளுதல்: உங்கள் பயன்பாட்டை ஊடாடும் வகையில் உருவாக்குதல்
நிகழ்வு கையாளுதல் என்பது பொத்தான் கிளிக்குகள், விசை அழுத்தங்கள் மற்றும் மவுஸ் நகர்வுகள் போன்ற பயனர் தொடர்புகளுக்கு பதிலளிக்கும் செயல்முறையாகும். Tkinter குறிப்பிட்ட செயல்களுடன் விட்ஜெட்களை இணைக்க நிகழ்வு பிணைப்புகளைப் பயன்படுத்துகிறது.
விட்ஜெட்களுக்கு நிகழ்வுகளை பிணைத்தல்
`bind()` முறையைப் பயன்படுத்தி விட்ஜெட்களுக்கு நிகழ்வுகளைப் பிணைக்கலாம். இந்த முறை இரண்டு வாதங்களை எடுக்கும்: நிகழ்வு வகை (எ.கா., இடது மவுஸ் கிளிக் செய்வதற்கான `
import tkinter as tk
def button_clicked(event):
print("Button clicked!")
root = tk.Tk()
root.title("Event Handling")
root.geometry("300x200")
button = tk.Button(root, text="Click Me")
button.bind("", button_clicked)
button.pack()
root.mainloop()
விளக்கம்:
- `def button_clicked(event):`: பொத்தானைக் கிளிக் செய்யும் போது அழைக்கப்படும் ஒரு செயல்பாட்டை வரையறுக்கிறது. `event` வாதம் நிகழ்வைப் பற்றிய தகவல்களைக் கொண்டுள்ளது.
- `button.bind("
", button_clicked)`: இடது மவுஸ் கிளிக் நிகழ்வை (``) `button_clicked` செயல்பாட்டுடன் பிணைக்கிறது.
பொதுவான நிகழ்வு வகைகள்
- `
`: இடது மவுஸ் கிளிக். - `
`: நடு மவுஸ் கிளிக். - `
`: வலது மவுஸ் கிளிக். - `
`: எந்த விசை அழுத்தமும். - `
`: 'A' விசையை அழுத்துதல். 'A' ஐ வேறு எந்த விசையாலும் மாற்றவும். - `
`: Enter விசையை அழுத்துதல். - `
`: விட்ஜெட் கவனம் பெறுகிறது. - `
`: விட்ஜெட் கவனத்தை இழக்கிறது. - `
`: விட்ஜெட்டிற்குள் மவுஸ் இயக்கம். - `
`: மவுஸ் விட்ஜெட்டில் நுழைகிறது. - `
`: மவுஸ் விட்ஜெட்டை விட்டு வெளியேறுகிறது.
எடுத்துக்காட்டு: பொத்தான் கிளிக் செய்தவுடன் லேபிளைப் புதுப்பித்தல்
ஒரு பொத்தானைக் கிளிக் செய்தால், லேபிளின் உரையைப் புதுப்பிக்கும் ஒரு உதாரணத்தை உருவாக்குவோம்.
import tkinter as tk
def update_label(event):
label.config(text="Button Clicked!")
root = tk.Tk()
root.title("Update Label")
root.geometry("300x200")
label = tk.Label(root, text="Click the button below")
button = tk.Button(root, text="Click Me")
button.bind("", update_label)
label.pack()
button.pack()
root.mainloop()
விளக்கம்:
- `label.config(text="Button Clicked!")`: `config()` முறையைப் பயன்படுத்தி லேபிளின் உரையை "Button Clicked!" என மாற்றுகிறது.
மேம்பட்ட Tkinter கருத்துக்கள்
நீங்கள் Tkinter இன் அடிப்படைகளில் வசதியாகிவிட்டால், மேலும் அதிநவீன பயன்பாடுகளை உருவாக்க, மேம்பட்ட கருத்துக்களை ஆராயலாம்.
உரையாடல்கள் மற்றும் செய்தி பெட்டிகள்
தகவலைக் காண்பிப்பதற்கும், பயனர் உள்ளீட்டைக் கேட்பதற்கும், பிழைகளைக் கையாளுவதற்கும் Tkinter உள்ளமைக்கப்பட்ட உரையாடல்கள் மற்றும் செய்தி பெட்டிகளை வழங்குகிறது. இந்த உரையாடல்கள் முறையானவை, அதாவது அவை மூடப்படும் வரை பிரதான சாளரத்துடன் தொடர்புகொள்வதைத் தடுக்கின்றன.
import tkinter as tk
from tkinter import messagebox
def show_message():
messagebox.showinfo("Information", "This is an information message.")
def ask_question():
answer = messagebox.askquestion("Question", "Are you sure?")
if answer == "yes":
print("User said yes")
else:
print("User said no")
root = tk.Tk()
root.title("Dialogs")
root.geometry("300x200")
button1 = tk.Button(root, text="Show Message", command=show_message)
button2 = tk.Button(root, text="Ask Question", command=ask_question)
button1.pack()
button2.pack()
root.mainloop()
விளக்கம்:
- `from tkinter import messagebox`: உரையாடல் செயல்பாடுகளைக் கொண்டிருக்கும் `messagebox` தொகுதியை இறக்குமதி செய்கிறது.
- `messagebox.showinfo("Information", "This is an information message.")`: "Information" என்ற தலைப்பு மற்றும் "This is an information message" என்ற செய்தியுடன் ஒரு தகவல் செய்தி பெட்டியை காண்பிக்கும்.
- `messagebox.askquestion("Question", "Are you sure?")`: "Question" என்ற தலைப்பு மற்றும் "Are you sure?" என்ற செய்தியுடன் ஒரு கேள்வி செய்தி பெட்டியை காண்பிக்கும். பயனர் "yes" அல்லது "no" என பதிலளிக்க முடியும்.
பட்டியல்கள்
பட்டியல்கள் உங்கள் பயன்பாட்டில் கட்டளைகள் மற்றும் விருப்பங்களை ஒழுங்கமைக்க ஒரு கட்டமைக்கப்பட்ட வழியை வழங்குகின்றன. நீங்கள் மெனு பார்கள், கீழ்தோன்றும் மெனுக்கள் மற்றும் சூழல் மெனுக்களை உருவாக்கலாம்.
import tkinter as tk
def do_nothing():
print("Do nothing")
root = tk.Tk()
root.title("Menus")
root.geometry("400x300")
# Create a menu bar
menubar = tk.Menu(root)
# Create a File menu
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=do_nothing)
filemenu.add_command(label="Open", command=do_nothing)
filemenu.add_command(label="Save", command=do_nothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
# Add the File menu to the menu bar
menubar.add_cascade(label="File", menu=filemenu)
# Create an Edit menu
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=do_nothing)
editmenu.add_command(label="Redo", command=do_nothing)
# Add the Edit menu to the menu bar
menubar.add_cascade(label="Edit", menu=editmenu)
# Configure the root window to use the menu bar
root.config(menu=menubar)
root.mainloop()
விளக்கம்:
- `menubar = tk.Menu(root)`: ஒரு மெனு பார் விட்ஜெட்டை உருவாக்குகிறது.
- `filemenu = tk.Menu(menubar, tearoff=0)`: மெனு பாரின் ஒரு குழந்தையாக ஒரு கோப்பு மெனுவை உருவாக்குகிறது. `tearoff=0` வா argument மெனுவை தனி ஜன்னலில் இருந்து கிழிப்பதை தடுக்கிறது.
- `filemenu.add_command(label="New", command=do_nothing)`: "New" என்ற லேபிளுடனும், `do_nothing` கட்டளையுடனும் கோப்பு மெனுவில் ஒரு கட்டளையை சேர்க்கிறது.
- `filemenu.add_separator()`: கோப்பு மெனுவுக்கு ஒரு பிரிப்பான் வரியைச் சேர்க்கிறது.
- `menubar.add_cascade(label="File", menu=filemenu)`: கோப்பு மெனுவை மெனு பாருக்கு சேர்க்கிறது.
- `root.config(menu=menubar)`: மெனு பாரைப் பயன்படுத்த ரூட் ஜன்னலை கட்டமைக்கிறது.
கேன்வாஸ் விட்ஜெட்
கேன்வாஸ் விட்ஜெட் உங்கள் பயன்பாட்டில் தனிப்பயன் கிராபிக்ஸ், வடிவங்கள் மற்றும் உரைகளை வரைய உங்களை அனுமதிக்கிறது. காட்சிப்படுத்தல்கள், விளையாட்டுகள் மற்றும் பிற கிராஃபிகல் இடைமுகங்களை உருவாக்குவதற்கான ஒரு சக்திவாய்ந்த கருவியாகும்.
import tkinter as tk
root = tk.Tk()
root.title("Canvas")
root.geometry("400x300")
canvas = tk.Canvas(root, width=400, height=300, bg="white")
# Draw a rectangle
canvas.create_rectangle(50, 50, 150, 100, fill="blue")
# Draw a circle
canvas.create_oval(200, 50, 250, 100, fill="red")
# Draw a line
canvas.create_line(50, 150, 350, 150, width=3, fill="green")
# Draw text
canvas.create_text(200, 250, text="Hello, Canvas!", font=("Arial", 16))
canvas.pack()
root.mainloop()
விளக்கம்:
- `canvas = tk.Canvas(root, width=400, height=300, bg="white")`: 400 பிக்சல்கள் அகலம், 300 பிக்சல்கள் உயரம் மற்றும் வெள்ளை பின்னணியுடன் ஒரு கேன்வாஸ் விட்ஜெட்டை உருவாக்குகிறது.
- `canvas.create_rectangle(50, 50, 150, 100, fill="blue")`: நீல நிறத்தில் நிரப்பப்பட்ட, (50, 50) இல் மேல்-இடது மூலையும், (150, 100) இல் கீழ்-வலது மூலையும் கொண்ட ஒரு செவ்வகத்தை வரைகிறது.
- `canvas.create_oval(200, 50, 250, 100, fill="red")`: சிவப்பு நிறத்தில் நிரப்பப்பட்ட, மேல்-இடது மூலையில் (200, 50) மற்றும் கீழ்-வலது மூலையில் (250, 100) வரையறுக்கப்பட்ட பெட்டியில் ஒரு ஓவல் (வட்டம்) வரைகிறது.
- `canvas.create_line(50, 150, 350, 150, width=3, fill="green")`: 3 பிக்சல்கள் அகலமும் பச்சை நிறமும் கொண்ட புள்ளி (50, 150) முதல் புள்ளி (350, 150) வரை ஒரு கோட்டை வரைகிறது.
- `canvas.create_text(200, 250, text="Hello, Canvas!", font=("Arial", 16))`: Arial எழுத்துருவைப் பயன்படுத்தி (200, 250) ஆயத்தொலைவுகளில் "Hello, Canvas!" என்ற உரையை வரைகிறது, அளவு 16.
Tkinter மேம்பாட்டிற்கான சிறந்த நடைமுறைகள்
பராமரிக்கக்கூடிய மற்றும் அளவிடக்கூடிய Tkinter பயன்பாடுகளை உருவாக்க, பின்வரும் சிறந்த நடைமுறைகளைக் கவனியுங்கள்:
- பொருள் சார்ந்த நிரலாக்கத்தைப் பயன்படுத்துங்கள் (OOP): கட்டமைப்பை மேம்படுத்தவும் மீண்டும் பயன்படுத்தவும் உங்கள் குறியீட்டை வகுப்புகள் மற்றும் பொருட்களாக ஒழுங்கமைக்கவும்.
- GUI லாஜிக்கை வணிக லாஜிக்கிலிருந்து பிரிக்கவும்: உங்கள் GUI குறியீட்டை உங்கள் பயன்பாட்டின் முக்கிய செயல்பாட்டைக் கையாளும் குறியீட்டிலிருந்து தனித்தனியாக வைத்திருங்கள். இது உங்கள் குறியீட்டை மிகவும் மட்டு மற்றும் சோதிக்க எளிதாக்குகிறது.
- நிலையான குறியீட்டு நடையைப் பயன்படுத்துங்கள்: படிக்கக்கூடிய தன்மையையும் பராமரிப்பையும் மேம்படுத்த, ஒரு நிலையான குறியீட்டு நடைமுறையைப் பின்பற்றவும் (எ.கா., PEP 8).
- கருத்துகளைச் சேர்க்கவும்: உங்கள் குறியீடு என்ன செய்கிறது மற்றும் ஏன் என்பதை விளக்க உங்கள் குறியீட்டில் கருத்துகளைச் சேர்க்கவும். இது நீங்களும் மற்றவர்களும் எதிர்காலத்தில் உங்கள் குறியீட்டைப் புரிந்துகொள்ள உதவும்.
- பதிப்பு கட்டுப்பாட்டைப் பயன்படுத்துங்கள்: உங்கள் குறியீட்டில் மாற்றங்களைக் கண்காணிக்கவும் மற்றவர்களுடன் ஒத்துழைக்கவும் ஒரு பதிப்பு கட்டுப்பாட்டு அமைப்பைப் பயன்படுத்தவும் (எ.கா., Git).
- சர்வதேசமயமாக்கல் (i18n) மற்றும் உள்ளூர்மயமாக்கல் (l10n) ஆகியவற்றைக் கவனியுங்கள்: உங்கள் பயன்பாடு உலகளாவிய பார்வையாளர்களுக்காக வடிவமைக்கப்பட்டிருந்தால், வெவ்வேறு மொழிகள் மற்றும் கலாச்சாரங்களை ஆதரிக்க உங்கள் பயன்பாட்டை சர்வதேசமயமாக்குதல் மற்றும் உள்ளூர்மயமாக்குவதைக் கவனியுங்கள். இதில் உரைக்கான யுனிகோடைப் பயன்படுத்துவதும், உங்கள் GUI இல் உள்ள அனைத்து உரை கூறுகளுக்கும் மொழிபெயர்ப்புகளை வழங்குவதும் அடங்கும். எடுத்துக்காட்டாக, அமைப்புகள் மெனுவிலிருந்து பயனரை அவர்களின் விருப்பமான மொழியைத் தேர்ந்தெடுக்கவும், பின்னர் பொருத்தமான மொழிபெயர்ப்பு கோப்புகளை ஏற்றவும் அனுமதிக்கலாம்.
சர்வதேச எடுத்துக்காட்டுகள் மற்றும் கருத்தாய்வுகள்
உலகளாவிய பார்வையாளர்களுக்காக Tkinter பயன்பாடுகளை உருவாக்கும்போது, பிராந்திய வேறுபாடுகளையும் கலாச்சார நுணுக்கங்களையும் கருத்தில் கொள்வது அவசியம். சில எடுத்துக்காட்டுகள் இங்கே:
- தேதி மற்றும் நேர வடிவங்கள்: வெவ்வேறு நாடுகள் வெவ்வேறு தேதி மற்றும் நேர வடிவங்களைப் பயன்படுத்துகின்றன. பயனர் இருப்பிடத்திற்கு ஏற்ப தேதிகள் மற்றும் நேரத்தை வடிவமைக்க பைத்தானின் `datetime` தொகுதியையும், இருப்பிட அமைப்புகளையும் பயன்படுத்தவும். எடுத்துக்காட்டாக, அமெரிக்காவில், தேதி வடிவம் பொதுவாக MM/DD/YYYY ஆகும், அதே நேரத்தில் ஐரோப்பாவில், அது பெரும்பாலும் DD/MM/YYYY ஆகும்.
- நாணய வடிவங்கள்: பயனரின் இருப்பிடத்திற்கு ஏற்ப நாணய மதிப்புகளை வடிவமைக்க `locale` தொகுதியைப் பயன்படுத்தவும். வெவ்வேறு நாடுகள் வெவ்வேறு நாணய சின்னங்களையும் தசமப் பிரிப்பான்களையும் பயன்படுத்துகின்றன.
- உரை திசை: அரபு மற்றும் ஹீப்ரு போன்ற சில மொழிகள் வலதிலிருந்து இடமாக எழுதப்படுகின்றன. விட்ஜெட்டுகளுக்கான `orient` விருப்பத்தைப் பயன்படுத்தி Tkinter வலதிலிருந்து இடது உரை திசையை ஆதரிக்கிறது.
- எழுத்து குறியீட்டு முறை: பல்வேறு மொழிகளிலிருந்து பரந்த அளவிலான எழுத்துகளை ஆதரிக்க உங்கள் பயன்பாட்டில் உள்ள அனைத்து உரைக்கும் யூனிகோடைப் (UTF-8) பயன்படுத்தவும்.
- எண் வடிவமைத்தல்: எண்களைக் காண்பிப்பதற்குப் பயன்படுத்தப்படும் பல்வேறு மரபுகளை நினைவில் கொள்ளுங்கள். உதாரணமாக, சில இருப்பிடங்களில் தசமப் பிரிப்பான்களாக காற்புள்ளிகளும், ஆயிரக்கணக்கானவற்றை குழுவாக்க புள்ளிகளும் பயன்படுத்தப்படுகின்றன, மற்றவை இதற்கு நேர்மாறாகச் செய்கின்றன.
- பயனர் இடைமுக வடிவமைப்பு: உங்கள் பயனர் இடைமுகத்தை வடிவமைக்கும்போது கலாச்சார விருப்பங்களைக் கவனியுங்கள். வண்ணங்கள், சின்னங்கள் மற்றும் படங்கள் வெவ்வேறு கலாச்சாரங்களில் வெவ்வேறு அர்த்தங்களைக் கொண்டிருக்கலாம். கலாச்சார உணர்திறன்களைப் பற்றி ஆராய்ச்சி செய்வது, எதிர்பாராத குற்றங்களைத் தவிர்க்க உதவும்.
Tkinter க்கு மாற்றுகள்
பல பைத்தான் GUI திட்டங்களுக்கு Tkinter ஒரு திடமான தேர்வாக இருந்தாலும், வேறு சில GUI நூலகங்கள் கிடைக்கின்றன, ஒவ்வொன்றும் அதன் சொந்த பலம் மற்றும் பலவீனங்களைக் கொண்டுள்ளன. சில குறிப்பிடத்தக்க மாற்றுகள் இங்கே:
- PyQt: Qt கட்டமைப்பை அடிப்படையாகக் கொண்ட சக்திவாய்ந்த மற்றும் அம்சம் நிறைந்த GUI நூலகம். PyQt சிக்கலான மற்றும் பார்வைக்கு ஈர்க்கக்கூடிய பயன்பாடுகளை உருவாக்குவதற்கு பரந்த அளவிலான விட்ஜெட்களையும் கருவிகளையும் வழங்குகிறது. இது ஒரு வணிக நூலகம், ஆனால் திறந்த மூல திட்டங்களுக்கு GPL பதிப்பு கிடைக்கிறது.
- wxPython: மற்றொரு பிரபலமான குறுக்கு-தளம் GUI நூலகம், இது வெவ்வேறு இயக்க முறைமைகளில் சொந்த தோற்றத்தையும் உணர்வையும் வழங்குகிறது. wxPython அதன் விரிவான விட்ஜெட் தொகுப்புக்கும், அடிப்படை தளத்துடன் தடையின்றி ஒருங்கிணைக்கும் பயன்பாடுகளை உருவாக்கும் திறனுக்கும் பெயர் பெற்றது.
- Kivy: நவீன, தொடுதல்-இயக்கப்பட்ட பயன்பாடுகளை உருவாக்குவதற்காக வடிவமைக்கப்பட்ட ஒரு குறுக்கு-தளம் GUI கட்டமைப்பு. Kivy ஒரு தனிப்பயன் UI மொழி (Kv) பயன்படுத்துகிறது மற்றும் மென்மையான செயல்திறனுக்காக வன்பொருள் முடுக்கத்தை ஆதரிக்கிறது.
- Gtk+: கிராஃபிகல் பயனர் இடைமுகங்களை உருவாக்குவதற்கான பரவலாகப் பயன்படுத்தப்படும் குறுக்கு-தளம் கருவித்தொகுப்பு. பைத்தான் குறிப்பிட்டது அல்ல என்றாலும், PyGObject எனப்படும் பைத்தான் பைண்டிங்குகளைக் கொண்டுள்ளது, இது பைத்தான் மூலம் GTK+ பயன்பாடுகளை உருவாக்க அனுமதிக்கிறது. பொதுவாக லினக்ஸ் பயன்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது.
- PySimpleGUI: GUI பயன்பாடுகளை உருவாக்குவதை எளிதாக்க முயற்சிக்கும் ஒரு நூலகம். இது Tkinter, Qt, WxPython மற்றும் Remi ஆகியவற்றை பின்முனைகளாக ஆதரிக்கிறது, இது குறியீடு மாற்றங்களை குறைவாகக் கொண்டு இடைமுகத்தை மாற்ற அனுமதிக்கிறது.
முடிவுரை
பைத்தானுடன் டெஸ்க்டாப் பயன்பாடுகளை உருவாக்க Tkinter ஒரு நேரடியான மற்றும் அணுகக்கூடிய வழியை வழங்குகிறது. அதன் எளிமை, குறுக்கு-தளம் இணக்கத்தன்மை மற்றும் பைத்தானின் நிலையான நூலகத்தில் சேர்க்கப்பட்டுள்ளதன் காரணமாக இது ஆரம்ப மற்றும் அனுபவம் வாய்ந்த டெவலப்பர்களுக்கும் சிறந்த தேர்வாக அமைகிறது. இந்த வழிகாட்டியில் உள்ள கருத்துகளை மாஸ்டர் செய்வதன் மூலம், எளிய பயன்பாடுகள் முதல் சிக்கலான தரவு காட்சிப்படுத்தல் கருவிகள் வரை பல்வேறு GUI பயன்பாடுகளை உருவாக்க நீங்கள் நன்கு தயாராக இருப்பீர்கள். உங்கள் பயன்பாடுகளை வடிவமைக்கும்போது உலகளாவிய பார்வையாளர்களைக் கருத்தில் கொள்ள மறக்காதீர்கள், மேலும் பல்வேறு இடங்கள் மற்றும் கலாச்சாரங்களுக்கு ஏற்ப அவற்றை மாற்றியமைக்கவும்.
வழங்கப்பட்ட எடுத்துக்காட்டுகளைப் பரிசோதிக்கவும், Tkinter ஆவணங்களை ஆராயவும் மற்றும் உங்கள் புரிதலை வலுப்படுத்த உங்கள் சொந்த திட்டங்களை உருவாக்கவும். மகிழ்ச்சியான குறியீட்டு முறை!