পা্ইথন মূলত একটা হাই লেভেল ও সহজবোধ্য ল্যাংগুয়েজ । এটা দিয়ে আমরা আজে দেখব কীভাবে ইন্টারফেস সহ বিভিন্ন প্রোগ্রাম তৈরী করা যায় । আমি আগে মূলত টেকটিউনসে tkinter মডিউল নিয়ে লিখেছিলাম । আজ আমরা পাই কিউটি নামক মডিউল টা দেখব ।এটা আসলে অনেক পাওয়ারফুল ।মূলত পাইথনে গুই ডেভলপমেন্ট এর জন্য এই মডিউলটাই বেশী ব্যাবহৃত হয় । আসুন আজ আমরা এই সম্পর্কে একটু জানি ।
প্রথমে এইখান থেকে মডিউলটা ডাউনলোড করে নিন । তারপর সিম্পলি এটা ইনস্টল করুন । তারপর পাইথন আই ডি ই ওপেন করে লিখুন :
import sys
from PyQt4 import QtGui
এটা সেভ করে রান করান । যদি কোন ইরর না দেখায় তবে বুঝবেন যে মডিউল ঠিকঠাক ইনস্টল হয়েছে । মূলতএই মডিউলের মাধ্যমে আমরা অনেক গুলো কাজ করেত পারব । যেমন ইন্টারফেস তৈরী , নেটওয়ার্কিং নিয়ে কাজ , ডাটাবেস নিয়ে কাজ প্রভৃতি । তবে আমরা এখন শুধু এটা দিয়ে ইন্টারফেস সহ এপ্লিকেশন তৈরী টাই দেখব । আসুন আমরা আজ আমাদের প্রথম প্রোগ্রাম টা লিখে ফেলি । এটা শুধু মাত্র একটা উইন্ডো তৈরী করবে একটা আইকন, বাটন ও একটা সহ । সবাই নিচের কোডটা লিখে ফেলুন । তবে আমরা পুরো কোডটা করব অবজেক্ট ওরিয়েন্টেড অর্থাৎ ক্লাস ও অবজেক্ট মেথডে । কারণ এটা করলে আমাদের অবজেক্ট ওরিয়েন্টেড এর ধারণা টা আরও ক্লিয়ার হবে ।
import sys from PyQt4 import QtGui,QtCore class Icon(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Icon') self.setWindowIcon(QtGui.QIcon('icons/web.png')) quit = QtGui.QPushButton('Close', self) quit.setGeometry(10, 10, 60, 35) self.connect(quit, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()')) def closeEvent(self, event): reply = QtGui.QMessageBox.question(self, 'Message', "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: event.accept() else: event.ignore() app = QtGui.QApplication(sys.argv) ico = Icon() ico.show() sys.exit(app.exec_())
এখানে প্রথমে আমরা মূলত প্রোগ্রামিং এর জন্য প্রয়োজনীয় মডিউল টা ইমপোর্ট করেছি । তারপর Icon নামের একটা ক্লাস নিয়েছি । এবং এই ক্লাস টা কোন ক্লাস থেকে ইনহেরিটেট হয়েছে সেটা বলে দিয়েছি ।এর অর্থ হল কিউটি মডিউলে যে দুটো ক্লাস থেকে আমরা ফাংশন নিয়ে কাজ করব সে ফাংশনের নাম আমরা লিখেছি । কারণ মডিউলের মধ্যে ওই দুটো ক্লাসে মূলত গুই ও উইগেট সম্পর্কিত তথ্য বা কোড লেখা আছে । তাই সেই দুটো কনস্ট্রাক্টর কে আমরা কল করেছি ।
তারপর আমরা পরের কোড টা দেখি ।
self.setWindowTitle(‘Icon’)
self.setWindowIcon(QtGui.QIcon(‘icons/web.png’))
আর তারপরের কোডটির মাধ্যমে আমরা আইকন ফাইলটি কোথায় রয়েছে সেটা বলে দিয়েছি । এখানে আপনারা আপনার আইকন ফাইলটি কোথায় আছে তার ফুল প্যাথ টা দেখিয়ে দেবেন ।
self.setGeometry(300, 300, 250, 150)
প্রথম কোড টার মাধ্যমে আমরা মূলত প্রথমে ডেক্সটপের কোন পজিশনে উইন্ডোটা সো হবে সেটা বলে দিয়েছি (300,300) এই টুকুর মাধ্যমে । তারপর আমরা উইন্ডোর ডাইমেনশন টা বলে দিয়েছি পরের সংখ্য দুটোর মাধ্যমে । অর্থাৎ উইন্ডোর উচ্চতা ও আড়ে কত হবে সেটা ।
self.setWindowTitle(‘Icon’)
এই কোডটার মাধ্যমে আমরা উইন্ডোটির টাইটেল কী হবে সেটা বলে দিয়েছি ।
quit = QtGui.QPushButton(‘Close’, self)
এই কোডের কাজ হল আমাদের তৈরী উইন্ডো এর উপর একটা বাটন তৈরী করা যার নাম হবে । নামটা আমরা ডাবল ইনভার্টেট কমার মধ্যে বলে দিয়েছি । এবং নিচের কোডের মাধ্যমে আমরা বাটনের সাইজ টা বলে দিয়েছি ।
quit.setGeometry(10, 10, 60, 35)
এবার নীচের কোডটি হল সবথেকে গুরুত্বপূর্ণ কোড ।
self.connect(quit, QtCore.SIGNAL(‘clicked()’),
মূলত কিউটি কাজ করে সিগন্যাল ও স্লটের মাধ্যমে । অর্থাৎ প্র্রোগ্রামটিতে যদি কেউ ক্লিক করে তবে এটা পাই কিউটির বিল্ট ইন ফাংশন কোয়েট কে কল করবে । ফলে এপ্লিকেশনটা আর কোন কাজ করবে না ।এখানে আপনারা পরবর্তীতে নিজেদের তৈরী ফাংশন ও ইউজ করতে পারবেন ।
QtGui.qApp, QtCore.SLOT(‘quit()’))
এবার দেখুন আমরা এই ক্লাসের ভেতর আরেকটা ফাংশন তৈরী করেছি ক্লোজইভেন্ট নামের । এর মূল কাজটা হল যখন কেউ এপ্লিকেশনটা ক্লোজ করতে ডাবে তখন একটা ইয়েস/নো ডায়লগ বক্স সো করানো । এখানে আমরা রিপ্লাই নামের একটা ভ্যারিয়েবল নিয়ে সেটার মধ্যে মেসেজ বক্সটা তৈরী করেছি QtGui.QMessageBox.question কোডের মাধ্যমে । তারপর মেসেজ বক্সের নাম ও মেসেজ বক্সের মধ্যে যে টেক্সট সো করবে সেটা ইনভার্টেড কমার মধ্যে বলে দিয়েছি । এরপর আমরা ২ টা অপশন দিয়েছি যেটা QT মডিউলের মধ্যে আগেই লেখা ছিল । সেটা হল :
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
এখন তারপর আমরা ইফ ইলস স্টেটমেন্টের মাধ্যমে বলে দিয়েছি যে যদি ইউজার Yes
বাটনে ক্লিক করে তাহলে event.accept() এক্সিকিউট হবে । মানে এপ্লিকেশটা বন্ধ হবে । আর না হলে যে অবস্থায় আছে সেই অবস্থাতেই থাকবে । মানে event.ignore() কোডটা এক্সিকিউট হবে ।
app = QtGui.QApplication(sys.argv)
এই কোডটা মূলত আমাদের সব কোডেই লিখতে হবে । কারণ এই কোডটাই মূলত ইন্টারফেসটা তৈরী করে । এর পরেই আমরা মূলত সব কোড প্লেস করব আগের ক্লাসসটাকে কল করার মাধ্যমে ।
ico = Icon()
উপরের কোডের মাধ্যমে আমরা উপরের লেখা আইকন ক্লাসটাকে কল করেছি ।
ico.show()
এই কোডের মাধ্যমে আমরা আমাদের লেখা গুই টাকে সো করতে বলেছি ।
sys.exit(app.exec_())
এটা হল আমাদের কোডটাকে শেষ করার কোড । এটা লেখার মাধ্যমে আমাদের তৈরী কোডটা ডেসট্রয় করলাম । PYQT নিয়ে আরও টিউটোরিয়াল পেতে এখানে একবার ঘুরে আসতে পারেন । আর লাইভ আপডেট পেতে আমাদের পাইথন বাংলা গ্রুপে জয়েন করুন ।
অরিন্দম পাল
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের ইচ্ছা মত ঘুরি ফিরি আর খাই । মাঝে মাঝে নিজের ইচ্ছাটাও ঠিকমত বুঝতে পারি না ।
order atorvastatin sale atorvastatin 10mg over the counter purchase atorvastatin without prescription
order atorvastatin 80mg online buy lipitor atorvastatin buy online
baycip medication – cipro buy online order augmentin 625mg online
cipro 500mg pill – ethambutol 1000mg pills buy augmentin sale
buy retrovir online – buy avapro tablets where can i buy zyloprim
glucophage 500mg over the counter – buy septra pill buy lincocin 500mg online cheap
zidovudine 300 mg generic – generic lamivudine 100mg buy zyloprim 300mg for sale
clozaril 100mg generic – order generic quinapril 10 mg famotidine 20mg cheap