ඒකකය 8 – Tkinter වලින් එහාට: උසස් GUI Frameworks (විකල්ප ඒකකය) 🚀
මෙම පාඨමාලාව පුරාවටම අපි භාවිතා කළේ Python සමඟම එන, ඉගෙනීමට ඉතා පහසු Tkinter લાઇబ్రරි එකයි. ආරම්භකයින් සඳහා සහ සරල මෘදුකාංග සඳහා එය විශිෂ්ටයි. නමුත්, ඔබ වෘත්තීය මට්ටමේ, නවීන පෙනුමක් ඇති, සංකීර්ණ මෘදුකාංග නිර්මාණය කිරීමට බලාපොරොත්තු වන්නේ නම්, Python ලෝකය අපට ඊට වඩා බලවත් විකල්ප (Frameworks) ලබා දේ. මෙම ඒකකය, එවැනි විකල්ප පිළිබඳව කෙටි හැඳින්වීමක් සඳහායි.
⭐ PyQt5 හඳුන්වා දීම
PyQt (පයි-කියුට්) යනු වෘත්තීය ඩෙස්ක්ටොප් මෘදුකාංග නිර්මාණකරුවන් අතර ඉතා ජනප්රිය framework එකකි. මෙය Qt නම් වූ, C++ වලින් ලියැවුණු ඉතා බලවත් සහ පැරණි UI framework එකක් සඳහා වන Python සම්බන්ධකයකි (binding). ලෝකයේ ප්රසිද්ධ මෘදුකාංග වන VLC Media Player, Google Earth, VirtualBox වැනි බොහෝ මෘදුකාංග නිර්මාණය කර ඇත්තේ Qt භාවිතා කරමිනි.
PyQt භාවිතා කිරීමේ වාසි:
- නවීන පෙනුම: PyQt මඟින් නිර්මාණය කරන මෘදුකාංග වලට ඉතා නවීන, polished පෙනුමක් ලබා දිය හැක.
- විශාල විජට් එකතුව: Tkinter වලට වඩා බෙහෙවින් වැඩි, දියුණු විජට් (tables, progress bars, charts) ප්රමාණයක් මෙහි අඩංගු වේ.
- CSS සමඟ පෙනුම සැකසීම: වෙබ් අඩවි නිර්මාණයේදී භාවිතා වන CSS වලට සමාන syntax (stylesheet) එකක් භාවිතයෙන්, මෘදුකාංගයේ ඇති විජට් වල පෙනුම ඉතා පහසුවෙන් වෙනස් කළ හැක.
🎨 Qt Designer සමඟ Drag-and-Drop නිර්මාණකරණය
PyQt හි ඇති ආකර්ෂණීයම අංගයක් වන්නේ Qt Designer යි. මෙය drag-and-drop ක්රමයට, කේත නොලියා, මෘදුකාංගයක UI එක නිර්මාණය කළ හැකි වෙනමම මෘදුකාංගයකි.
එහි ක්රියාවලිය මෙසේය:
- ඔබ Qt Designer මෘදුකාංගය විවෘත කර, අවශ්ය බොත්තම්, ටෙක්ස්ට් box වැනි දෑ මවුසයෙන් ඇද දමා (drag and drop) ඔබේ UI එක නිර්මාණය කරයි.
- Qt Designer මඟින් එම නිර්මාණය
.uiනමැති ගොනුවක් ලෙස save කරයි. - ඔබේ Python කේතය තුළ, ඔබ UI එක නිර්මාණය කිරීමට කේත ලියනවා වෙනුවට, මෙම
.uiගොනුව load කරන ලෙසට සරල විධානයක් ලබා දේ.
මෙමඟින් ලැබෙන ප්රධානම වාසිය නම්, මෘදුකාංගයේ පෙනුම (Design) සහ එහි ක්රියාකාරීත්වය (Logic) සම්පූර්ණයෙන්ම වෙන් කර තැබීමට හැකි වීමයි. මෙය විශාල ව්යාපෘති වලදී ඉතා වැදගත් සංකල්පයකි.
📊 Frameworks සැසඳීම: Tkinter vs PyQt vs Kivy
Python සමඟ භාවිතා කළ හැකි ප්රධාන GUI frameworks කිහිපයක් මෙසේ සාරාංශගත කළ හැක:
| Framework | වඩාත් සුදුසු වන්නේ | වාසි (Pros) | අවාසි (Cons) |
|---|---|---|---|
| Tkinter | ආරම්භකයින්, සරල මෙවලම්, ඉක්මන් ව්යාපෘති | Python සමඟම ලැබේ (built-in), ඉගෙනීමට ඉතා පහසුයි, සැහැල්ලුයි | පෙනුම තරමක් පැරණියි, විජට්ස් සීමිතයි |
| PyQt / PySide | වෘත්තීය මට්ටමේ, සංකීර්ණ ඩෙස්ක්ටොප් මෘදුකාංග | නවීන පෙනුම, Qt Designer, විශාල විජට් එකතුව, ඉතා බලවත් | ඉගෙනීමට තරමක් සංකීර්ණයි, බලපත්ර ගැටළු (PyQt), Tkinter වලට වඩා විශාලයි |
| Kivy | Desktop සහ Mobile (Android/iOS) යන දෙකටම මෘදුකාංග නිර්මාණයට | එකම කේතය සියලුම platform වල ක්රියාත්මක වේ, multi-touch සඳහා සහාය දක්වයි | පෙනුම සාම්ප්රදායික ඩෙස්ක්ටොප් මෘදුකාංග වලට වඩා වෙනස්, ප්රජාව (community) තරමක් කුඩායි |