ඒකකය 7 – මෘදුකාංගයට වෘත්තීය පෙනුමක් ලබා දීම ✨
අපගේ මෘදුකාංග දැන් ක්රියාත්මක වන නමුත්, ඒවා වඩාත් පරිශීලක-හිතකාමී (user-friendly) සහ වෘත්තීය (professional) කිරීමට අපට තවත් දේවල් එකතු කළ හැකිය. මෙම ඒකකයේදී, පරිශීලක අත්දැකීම (User Experience) ඉහළ නංවන විශේෂාංග කිහිපයක් අපි ඉගෙන ගනිමු.
📂 ගොනු තේරීමේ වින්ඩෝ (File Dialogs)
අපගේ Notes App එකේදී, අපි ගොනුවේ නම (notes.txt) කේතය තුළම ස්ථිරව ලබා දුන්නෙමු. නමුත් සැබෑ මෘදුකාංගයකදී, පරිශීලකයාට තමන්ට අවශ්ය ඕනෑම ගොනුවක් විවෘත කිරීමට (Open) හෝ තමන් කැමති නමකින් ගොනුව සුරැකීමට (Save As) ඉඩ දිය යුතුය. Tkinter හි filedialog මොඩියුලය මේ සඳහා අපට උපකාරී වේ.
askopenfilename(): මෙය Windows වල සුපුරුදු "Open" වින්ඩෝව විවෘත කරයි. පරිශීලකයා ගොනුවක් තෝරා "Open" click කළ විට, එම ගොනුවේ සම්පූර්ණ path එක (උදා:C:/Users/YourName/Documents/mynote.txt) අපට ලබා දේ.asksaveasfilename(): මෙය "Save As" වින්ඩෝව විවෘත කරයි. පරිශීලකයා නමක් ටයිප් කර "Save" click කළ විට, ඔහුට ගොනුව සුරැකීමට අවශ්ය සම්පූර්ණ path එක අපට ලබා දේ.
මෙමගින් අපගේ මෘදුකාංගය වඩාත් නම්යශීලී වන අතර, පරිශීලකයාට වැඩි පාලනයක් ලබා දේ.
💬 පණිවිඩ පෙට්ටි (Message Boxes)
මෘදුකාංගය පරිශීලකයා සමඟ "කතා කරන" ක්රමයක් ලෙස Message Boxes හැඳින්විය හැක. යම් දෙයක් දැනුම් දීමට, දෝෂයක් පෙන්වීමට, හෝ තහවුරු කිරීමක් ලබා ගැනීමට මේවා භාවිතා කරයි. Tkinter හි messagebox මොඩියුලය මේ සඳහා අපට සූදානම් කළ pop-up වින්ඩෝ කිහිපයක් ලබා දේ.
showinfo(): සරල තොරතුරක් දැනුම් දීමට. උදා: "ගොනුව සාර්ථකව සුරකින ලදී!"showerror(): යම් දෝෂයක් සිදු වූ බව පරිශීලකයාට දැන්වීමට. උදා: "ගොනුව සොයාගත නොහැක!"askyesno(): "ඔව්" හෝ "නැත" ලෙස පිළිතුරු දිය හැකි ප්රශ්නයක් ඇසීමට. උදා: "මෘදුකාංගයෙන් ඉවත් වීමට ඔබට විශ්වාසද?". පරිශීලකයා "Yes" click කළහොත් මෙයTrueඅගයක්ද, "No" click කළහොත්Falseඅගයක්ද ලබා දේ.
🖼️ අයිකන් (Icons) සහ වෙනස් කළ හැකි මාතෘකා (Titles)
ඔබේ මෘදුකාංගයට අනන්යතාවයක් ලබා දීමට මේවා උපකාරී වේ.
- Window Title:
root.title("My Notes App")වැනි සරල විධානයකින් ඔබට ඕනෑම වෙලාවක මෘදුකාංගයේ ප්රධාන වින්ඩෝවේ මාතෘකාව වෙනස් කළ හැක. - Application Icon: සාමාන්යයෙන් Tkinter මෘදුකාංගයක පිහාටුවක icon එකක් දිස්වේ. එය වෙනස් කර, ඔබේම icon එකක් ලබා දීමට
root.iconbitmap('path/to/my_icon.ico')විධානය භාවිතා කළ හැක. Windows සඳහා.icoආකෘතියේ ගොනුවක් භාවිතා කිරීම වඩාත් සුදුසුය. මෙම කුඩා වෙනස මඟින් ඔබේ මෘදුකාංගයට ඉතා වෘත්තීය පෙනුමක් ලැබේ.
🗂️ කේතය ගොනු කිහිපයකට වෙන් කිරීම
අපගේ ව්යාපෘති විශාල වන විට, සියලුම කේත (UI කේත, function කේත, class කේත) එකම .py ගොනුවක තබා ගැනීමෙන් එය කියවීමට සහ කළමනාකරණය කිරීමට අපහසු වේ. මෙය "spaghetti code" ලෙස හැඳින්වේ.
වඩා හොඳ ක්රමය වන්නේ, සම්බන්ධිත කේත කොටස් (උදා: යම්කිසි කාර්යයක් කරන class එකක්) වෙනම .py ගොනුවකට දමා, අපගේ ප්රධාන ගොනුවට එය import කර ගැනීමයි. මෙම ක්රමය Modularity ලෙස හැඳින්වේ.
මෙය තරමක් උසස් සංකල්පයක් වුවද, ඕනෑම සැබෑ ලෝකයේ මෘදුකාංග ව්යාපෘතියකදී අනුගමනය කරන සම්මත ක්රමය මෙයයි. මන්ද, එය මඟින්:
- කේතය කියවීමට පහසු වේ.
- දෝෂ නිවැරදි කිරීම (debugging) පහසු වේ.
- කේතය නඩත්තු කිරීම (maintenance) සහ නැවත භාවිතා කිරීම (reusability) පහසු වේ.