মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-১৩] :: গ্রাফিক্যাল ইউজার ইন্টারফেস সহ সফটওয়্যার তৈরী

মজার ও সহজ পাইথন প্রোগ্রামিং

ঈদ মোবারক । সবাইকে ঈদের শুভেচ্ছা । আমার প্রিয় বন্ধুরা , আশা করি সবাই ভাল আছেন । আমিও ভাল আছি । এর আগে সময়ের অভাবে আমি অনেক দিন পাইথন নিয়ে লিখতে পারি নি । তবে এই পূজা ও ঈদের ছুটিতে আবার লিখতে বসলাম । আগের পর্বে আমি আপনাদে র কিছু বইএর সন্ধান দিয়েছিলাম । সেখান থেকে আমার পাইথন চেইন টিউনের সম্মানিত পাঠক রাজ ভাই আমাকে আজকের লেখার প্রসংগে মনে করিয়ে দেন । এছাড়া সজল ভাই, আশিকুর ভাই সহ আরও অনেকে এই টিউটোরিয়াল লেখার ব্যাপারে আমাকে অনেক উৎসাহ দিয়েছেন । সেজন্য তাদেরকে আমার অন্তরের অন্তরস্থল থেকে ধন্যবাদ । পাইথনের একটা সাইড আমরা মোটেই আলোচনা করিনি । সেটা হল GUI প্রোগ্রামিং । আপনারে এতদিন যেসব প্রোগ্রাম তৈরী করে এসেছেন সবই শুধু লেখা আর লেখা । ভাবছেন , প্রোফেশনাল প্রোগ্রামারদের মত প্রোগ্রাম আর কবে তৈরী করব । চিন্তার কোন কারণ নেই । আপনারা পারবেন । আজই আমি আপনাদের পাইথনের GUI প্রোগ্রামিং এর সাথে পরিচয় করিয়ে দেব । এটা খুবই সিম্পল একটা জিনিস । ভয় পাবার কোন কারণ নেই । GUI এর সম্পূর্ণ অর্থ হল : Graphical User Interface । এর মাধ্যমে আপনারা আজ থেকেই পাইথনের গ্রাফিক্স এর কাজ করা শুরু করতে পারবেন ।তো চলুন শুরু করা যাক । প্রথমেই একটা উদাহরণ ।সবাই নিচের কোডটি লিখুন :

import tkinter
g = tkinter.Tk()
g.mainloop()

এবার এটিকে পাইথন শেলের run module গিয়ে গিয়ে রান করান । দেখুন নিচের মত একটা উইন্ডো শো করছে ।

এখানে আমরা প্রথমে tkinter নামে একটা মডিউল ইমপোর্ট করেছি ও g নামে একটা ভ্যারিয়েবল নিয়ে উইন্ডোটির কোড লিখেছি । এই মাঝের লাইনের কোডটিই এই উইন্ডো টি সৃষ্টি করেছে । আর g.mainloop() টা হল সব সময় গ্রাফিক্সের কোডের শেষে বসবে । এর অর্থ হল , গ্রাফিক্সের কাজ শেষ , এবার কোড লেখা শুরু কর ।

আপনারা সবাই নীচের ছবিটি খেয়াল করুন । এই আমি কেবল মাত্র আপনাদের জন্য তৈরী করলাম । এতে পাইথনের GUI প্রোগ্রামিং এর মাধ্যমে যা যা করা যায় তার প্রায় সব আছে । তবে কিছু বাদও আছে ।

এবার নিচের কোডগুলি দেখুন । এই কোড হল উপরের গুই টার কোড । এখন আমরা এই কোড গুলো বিশ্লেষন করে দেখব কীভাবে আমরা এই রকম একটা গুই তৈরী করতে পারি ।

import tkinter
def hello():
    tkinter.messagebox.showinfo("say hello","hello world")
top = tkinter.Tk()
top.title("Techtunes")
lbl = tkinter.Label(top, text = "Techtunes")
m = tkinter.Canvas(top, bg="blue", height=250, width=300)
c = tkinter.Checkbutton(top, text = "Techtunes")
b = tkinter.Checkbutton(top, text = "Python")
d = tkinter.Button(top, text ="Techtunes")
s = tkinter.Spinbox(top, from_=0, to=10)
h = tkinter.Button(top, text = "Python Tutorial",command = hello)
e = tkinter.Entry(top)
r = tkinter.Radiobutton(top, text = "Python Tutorial", value = 1)
lbl.pack()
m.pack()
c.pack()
b.pack()
d.pack()
s.pack()
h.pack()
e.pack()
r.pack()
top.mainloop()

সর্বপ্রথমে দেখুন , আমরা পাইথনের একটা মডিউল ইমপোর্ট করেছি যার নাম "tkinter" । এটি হল পাইথনের গ্রফিক্সের কাজের জন্য অপরিহার্য একটা মডিউল । আমরা যখনই কোন গুই বিল্ডিংএর কাজ করব , তখনআ এই মডিউলটা আমাদের ইমপোর্ট করতে হবে । এরপর আমরা একটা ফাংশন তৈরী করেছি যে বিষয়ে একটু পরে আসছি ।

এরপর আমি লিখেছি "top = tkinter.Tk() " । এই টি লিখেছি মূলত পাইথনে একটি উইন্ডো তৈরী করার জন্য । আপনারা কোন উইন্ডো তৈরী করতে হলে এটা লিখে নিবেন । এখানে top হল একটি ভ্যরিয়েবল । আপনি top এর বদলে যেকোন কিছু লিখতে পারেন । যাই হোক পরের পর্যায়ে আসি ।

top.title("Techtunes") কোডটি লেখার মাধ্যমে আমরা আমাদের উইন্ডোটির একটি নাম বা টাইটেল দিয়েছি । ছবিতে টাইটেল টি খেয়াল করুন । এখানে টাইটেল হল Techunes ।

এরপর আমরা lbl নামক একটি ভ্যরিয়েবল নিয়েছি যার মধ্যে আমাদের GUI এর LABEL টা র ডাটা থাকবে । এরপর tkinter.Label(top, text = "Techtunes") এর মাধ্যমে আমরা লেবেলের নাম এবং লেবেল টি কোন গুউ তে থাকবে তা বলে দিয়েছি । যেহেতু এখানে আমাদের গুই শুধুমাত্র ১ টি তাই আমরা তার নামই বলেছি । সেটি হল top । গুই এর মধ্যে যেকোন কিছু যুক্ত করতে হলে এমন ভাবে লিখতে হবে । ধরুন আমরা গুই এর মধ্যে লেবেল টা যুক্ত করেছি । তাই লিখতে হবে tkinter.Label(guiname, text =" ") ।text এর মধ্যে আমরা যা লিখব তাই লেবেল এর টেক্সট হিসেবে সো করবে । শুধু লেবেল এর ক্ষেত্রে নয় । সব গুলোর ক্ষেত্রেই । নীচের গুলো দেখলে বিষয় টা আরও ক্লিয়ার হবে । আশা করি বিষয় টা ক্লিয়ার হয়েছে । যা যুক্ত করবেন তার প্রথম অক্ষর টি সব সময় ক্যাপিটাল লেটার এ দিবেন ।
এরপর দেখুন আমরা একটা ক্যানভাস তৈরী করেছি , এবং তার ব্যাকগ্রাউন্ড কালার ও সাইজ দিয়ে দিয়েছি । সেম ভাবে প্রাকটিস করুন ।
এখানে = চিহ্নের বামপাশে যে অক্ষর গুলো দেখছেন তার সব গুলোই ভ্যরিয়েবল । আপনারা নিজের ইচ্ছা মত না বসাতে পারেন ।

এরপর দেখুন c ও d নামক দুটি ভ্যারিয়েবল এর মাধ্যমে আমরা দুটি চেকবক্স তৈরী করেছি । কোড দেখার সাথে সাথে চিত্র খেয়াল করুন । তারপ d নামক একটা ভ্যরিয়েবল নিয়ে আমরা একটি বাটন ও তৈরী করেছি । এই কোড লেখার পদ্ধতি গুলো খেযাল করুন ।
s ভ্যরিয়েবলের মাধ্যমে আমরা একটা লিস্ট বক্স নিয়েছি । লিস্টবক্স না বুঝতে পারলে চিত্রে দেখুন । from_=0, to=10 কোডের মাধ্যমে আমরা এর সীমাও নির্দিষ্ট করে দিয়েছি । আপনি ইচ্ছা করলে সীমা আরও বাড়িয়ে দিতে পারেন।

এবার দেখুন আমরা h নামক এটা ভ্যরিয়েবল নিয়েছি একটা বাটন এর জন্য । ভাবছেন , বাটন তো আগেও তৈরী করলাম , তাহলে আবার কেন ? হ্যা । এই বাটন হল আলাদা । এটি তে ক্লিক করলে এটি কিছু বলবে । আর কী বলবে তা আমরা বলে দিয়েছি আমাদের সেই প্রথমের hello ফাংশনে । এই ফাংশনে আমরা tkinter.messagebox.showinfo("say hello","hello world") কোড এর মাধ্যেমে । এখানে আমরা এই উইন্ডো টি তৈরী করতে messagebox নামক একটা কোডের সাহায্য নিয়েছি । আর সবশেষে বলে দিয়েছি যে এই বাটনে কেউ ক্লিক করলে উপরের তৈরী উইন্ডোটি সো করতে command = hello কোড দ্বারা ।

বলেছি যে hello world লেখা একটি উইন্ডো তৈরী করতে যার নাম হবে Say hello। আর সেই ফাংশনটি আমরা ইউজ করেছি এখানে এসে । এই ফাংশনে আপনারা showinfo এর স্থলে আর ও showwarning(), showerror (),, askquestion(), askokcancel(), askyesno (), askretrycancel () প্রভৃতি ব্যবহার করে দেখতে পারেন ।

তারপর আমরা e নামক একটা ভ্যরিয়েবল এর মাধ্যমে একটা এনন্ট্রি বক্স তৈরী করেছি । একে স্পিন বক্স ও বলা হয় ।
এরপর আমরা তৈরী করেছি একটি রেডিও বাটন ও তার নাম ও ভ্যালু দিয়েছি । এখানেই শেষ নয় । এ শুধু মাত্র উপরের জিনিস গুলো তৈরী হল । এবার এদের পাইথন গুই এর মধ্যে বসানোর জন্য আমরা যে কয়টি ভ্যারিয়েবল নিয়েছি সবকয়টিকে variable.pack() এই ভাবে পর পর লিখে গিয়েছি ।

এবার আমাদের কাজ শেষ । এবার এই কোডগুলো পাইথন এ রান মডিউল অপশনে গিয়ে রান করান । আর দেখুন আপনার কাজ । পাইথনে আরও কিছূ গুই এর কাজ আঝে , যেমন : মেনু তৈরী করা , বিভিন্ন ফ্রেম তৈরী প্রভৃতি । নিটি সার্চ দিয়ে একটু কষ্ট করে খোজ করে নিন । বিষয়গুলো খুবই সহজ । এরপর আশা করি বুঝতে পারবেন । আর পরের পর্বে আমি আপনাদের যেকোন একটা গ্রফিক্স প্রোগ্রাম তৈরী করে দেখাব ।

নোটিশ : গুই প্রোগ্রামিং যদি আপনি পাইথন এর পুরান কোন ভার্সনের IDLE তে ট্রই করেন তবে মিলবে না । আর ক্যাপিটাল লেটার ও স্মলার লেটার টা ভালভাবে দেখে লিখুন ।

আর কোন সমস্যা হলে বলবেন । GUI প্রোগ্রামিং এ অনেকে সমস্যায় পড়েন ।বেশীভোগ ক্ষেত্রে দেখা যায় সমস্যা গুলো খুবই ছোট । তবুও ধরতে পারছেন না । এরকম সমস্যা হলে জানাবেন ।

সবাইকে ধন্যবাদ । এরপরে আবার কবে দেখা হবে বলতে পারছি না । তবে আশা করা যায় ২৬ তারিখ পর্যন্ত আপনদের সাথে আছি । কারণ ভার্সিটি খুলবে ২৭ তারিখে ।সবাই ভাল থাকবেন ।

 

Level 2

আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

techtunes মেডেরেটার রা কি ঘুমিয়ে আছে ।

ঈদ মোবারক।
অনেক অনেক ধন্যবাদ ভাই এটা শুরু করার জন্য।

আপনাকে ধন্যবাদ রাজ ভাই । আর শাকিল ভাই , আপনার কমেন্টের অর্থটা ঠিক বুঝলাম না ।

ওফস ভাই দারুন ! ভাই প্লিস টিউন টা থামাই দিবেন না ! আপনার থেকে আরও আরও আরও চাই !

ধন্যবাদ আশিকুর ভাই ।যথাসাধ্য চেষ্টা করব ।

Level 0

ও গরম গরম tune চালিয়ে যান। একটা অনুরোধ আছে আপনি টিউন করা বন্ধ করবেন না যতদিন পারেন চালিয়ে যাবেন।

চেষ্টা করব ভাই,

ভাই জটিল!!!!!!!!!!!!!!!!!!!!! হইসে…

ধন্যবাদ +++…+
ধারাবাহিক টিউন করে যাবেন।Plz

Level 0

“সবাই বলে গুরুর কাছে নাকি যত প্রশ্ন করা যায় তত বেশি সেখা যায়”
১.আপনি আগের post এ যে বই দিয়েছিলেন তার ভাষা বাংলা না english ?
২.কোন software তৈরি করতে কোন proggraming launguage ব্যবহার হয়েছে তা কিভাবে যানা যায় ?

    @samir01: ভাই, প্রশ্ন করার জন্য ধন্যবাদ । তবে আমাকে গুরু বলবেন না প্লিজ । কারণ আমি আপনাদের মতই একজন শিক্ষার্থী ।
    উত্তর ১ : বই গুলোর ভাষা ইংলিশ ।
    উত্তর ২ : কোন প্রোগ্রাম কোন ল্যাংগুয়েজ দিয়ে তৈরী তা বোঝা যায় “.” এর পরের অংশটুকু দেখে । যেমন পাইথন এর তৈরী প্রোগ্রাম হলে বোঝা যাবে .py দেখে । একইভাবে জাভার তৈরী প্রোগ্রাম বোঝা যাবে .java দেখে , সি শার্প এর তৈরী প্রোগ্রাম বোঝা যাবে .exe দেখে । এভাবে প্রত্যেক ল্যাংগুয়েজের পৃথক পৃথক এক্সটেনশন আছে ।

আর আপনি যেসব ল্যাংগুয়েজ জানেন সেগুলোর সোর্স কোড দেখলেই তো বুঝতে পারবেন । যেমন , আমি পাইথন , পিএইচপি ও জাভা জানি । আমি এগুলোর কোড দেখলেই বলে দিতে পার যে কোন ল্যাংগুয়েজ দিয়ে তৈরী ।

Level 0

ধন্যবাদ @অরিন্দম দা প্রশ্নের উত্তর দেয়ার জন্য।