গুই প্রোগ্রামিং

গুই প্রোগ্রামিং

GUI (গুই)-এর পূর্ণরূপ— Graphical User Interface। উইকিপিডিয়া বলে- গুই হলো এক টাইপের ইউজার ইন্টারফেস, যা দ্বারা ইউজার গ্রাফিকাল আইকন ও ভিজ্যুয়াল ইন্ডিকেটরের মাধ্যমে ইন্টার‍্যাক্ট করতে পারে। সহজ ভাষায়, আমরা বিভিন্ন ডেস্কটপ অ্যাপ্লিকেশন ব্যবহার করতে গেলে (যেমন : গুগল ক্রোম, মজিলা ফায়ারফক্স, লিব্রা অফিস, অ্যাডোব ফটোশপ) এর যে অংশটা চোখে দেখতে পাই এবং যার মাধ্যমে ওই সফটওয়্যারের সাথে ইন্টার‍্যাক্ট করতে পারি তা-ই হলো গুই।

পাইথনে গুই প্রোগ্রামিংয়ের জন্য অনেকগুলো চমৎকার গুই ফ্রেমওয়ার্ক রয়েছে। এগুলোর মধ্যে বেশির ভাগই আবার ক্রস-প্ল্যাটফর্ম। মানে একই কোড কোনো প্রকার পরিবর্তন বা হালকা একটু পরিবর্তন করে সব অপারেটিং সিস্টেমে চালানো যায়। এখন আমরা কয়েকটি গুই ফ্রেমওয়ার্ক সম্পর্কে জানব।

পাইকিউটি (PyQt)

Qt ফ্রেমওয়ার্কের পাইথন বাইন্ডিং হলো PyQt, ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক (উইন্ডোজ, লিনাক্স, ম্যাকওএস ও অ্যান্ড্রয়েড সাপোর্ট করে)। সর্বশেষ সংস্করণ হলো, PyQt5 যা Qt v5 কে সাপোর্ট করে। এটি GNU GPL v3 লাইসেন্সের আওতায় ব্যবহার করা যায়। এই লাইসেন্সের আওতায় আমরা PyQt দিয়ে কোনো ওপেনসোর্স সফটওয়্যার তৈরি করলে তা বিনা মূল্যে ডিস্ট্রিবিউট করতে পারব। কিন্তু কোনো ক্লোজ-সোর্স সফটওয়্যার কমার্শিয়ালি ডিস্ট্রিবিউট করতে চাইলে Riverbank Commercial License-এর আওতায় PyQt-এর কমার্শিয়াল সংস্করণ কিনতে হবে আমাদের। এর অফিশিয়াল ওয়েবসাইট : https://riverbankcomputing.com/software/pyqt/intro এবং http://pyqt.sourceforge.net/Docs/PyQt5/introduction.html

পাইজিটিকে (PyGTK)

GTK+ ফ্রেমওয়ার্কের পাইথন বাইন্ডিং হলো PyGTK, ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক (উইন্ডোজ, লিনাক্স ও ম্যাকওএস সাপোর্ট করে) হলেও লিনাক্সে বেশি জনপ্রিয়। সর্বশেষ সংস্করণ হলো PyGTK3 যা PyGObject-এর মাধ্যমে GTK+3 সাপোর্ট করে। এটি GNU LGPL লাইসেন্সের আওতায় ব্যবহার করা যায়। এই লাইসেন্সের আওতায় অল্প কিছু রেস্ট্রিকশন বাদ দিয়ে আমরা আমাদের সফটওয়্যার কমার্শিয়ালি ডিস্ট্রিবিউট করতে পারি। অফিশিয়াল ওয়েবসাইট : http://www.pygtk.org/ ও অফিশিয়াল টিউটোরিয়াল : https://python-gtk-3-tutorial.readthedocs.io/en/latest/

পাইসাইড (PySide)

Qt ফ্রেমওয়ার্কের আরেকটি পাইথন বাইন্ডিং হলো PySide, ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক (উইন্ডোজ, লিনাক্স, ম্যাকওএস ও অ্যান্ড্রয়েড সাপোর্ট করে)। সর্বশেষ সংস্করণ হলো, PySide v1.2.4 যা Qt v4.8 কে সাপোর্ট করে। তবে PySide2-এর ডেভেলপমেন্ট চলছে, যা Qt v5 সাপোর্ট করে (ওয়েবসাইট : http://wiki.qt.io/PySide2)। PySide GNU LGPL লাইসেন্সের আওতায় ব্যবহার করা যায়। এই লাইসেন্সের আওতায় অল্প কিছু রেস্ট্রিকশন বাদ দিয়ে আমরা আমাদের সফটওয়্যার কমার্শিয়ালি ডিস্ট্রিবিউট করতে পারি। অফিশিয়াল ওয়েবসাইট : https://wiki.qt.io/PySide

ডব্লিউএক্সপাইথন (wxPython)

wxWidgets C++ লাইব্রেরির পাইথন বাইন্ডিং হলো wxPython, ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক (উইন্ডোজ, লিনাক্স ও ম্যাকওএস সাপোর্ট করে)। ওয়েবসাইট : https://www.wxpython.org/

কিভি (KIVY)

ওপেনসোর্স ক্রস-প্ল্যাটফর্ম পাইথন নুই (NUI - Natural User Interface) লাইব্রেরি। একই সাথে উইন্ডোজ, লিনাক্স, ম্যাকওএস, অ্যান্ড্রয়েড ও আইওএস সাপোর্ট করে। মাল্টি-টাচ অ্যাপ ডেভেলপ করার ক্ষেত্রে সবচেয়ে ভালো পাইথন লাইব্রেরি। অফিশিয়াল ওয়েবসাইট : https://kivy.org/

টিকেইনটার (TkInter)

পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ, ক্রস-প্ল্যাটফর্ম (উইন্ডোজ, লিনাক্স ও ম্যাকওএস সাপোর্ট করে)। দেখতে কিছুটা কুৎসিত বলে এর ব্যাপক দুর্নাম রয়েছে। তবে ভয়ানক লাইটওয়েট বলে সুনামও রয়েছে। অফিশিয়াল ওয়েবসাইট : https://docs.python.org/3/library/tk.html

এবার আমরা PyGTK3 ব্যবহার করে গুই বানানোর একটা উদাহরণ দেখব। এ জন্য প্রথমেই আমাদের PyGObject প্যাকেজটি ইনস্টল করতে হবে। ডেবিয়ান বা উবুন্টুর জন্য আমরা নিচের কমান্ডটা টার্মিনালে চালিয়ে প্যাকেজটি ইনস্টল করতে পারি।

sudo apt install python3-gi

ইনস্টল হয়ে গেলে app.py নামে একটি ফাইল তৈরি করে তাতে নিচের মতো করে কোড লিখব-

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

এবার স্ক্রিপ্টটা চালালে একটা উইন্ডো দেখতে পাব। কী চমৎকার তাই না? PyQt5 দিয়েও এ রকম সুন্দর সুন্দর ইউজার ইন্টারফেস তৈরি করা যায়। তবে এই ফ্রেমওয়ার্কগুলো এত ব্যাপক যে স্বল্প পরিসরের এই বইয়ে আলোচনা করা সম্ভব হলো না।

comments powered by Disqus