আমাদের কথা খুঁজে নিন

   

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

ঈদ মোবারক । সবাইকে ঈদের শুভেচ্ছা । আমার প্রিয় বন্ধুরা , আশা করি সবাই ভাল আছেন । আমিও ভাল আছি । এর আগে সময়ের অভাবে আমি অনেক দিন পাইথন নিয়ে লিখতে পারি নি ।

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

পাইথনের একটা সাইড আমরা মোটেই আলোচনা করিনি । সেটা হল GUI প্রোগ্রামিং । আপনারে এতদিন যেসব প্রোগ্রাম তৈরী করে এসেছেন সবই শুধু লেখা আর লেখা । ভাবছেন , প্রোফেশনাল প্রোগ্রামারদের মত প্রোগ্রাম আর কবে তৈরী করব । চিন্তার কোন কারণ নেই ।

আপনারা পারবেন । আজই আমি আপনাদের পাইথনের GUI প্রোগ্রামিং এর সাথে পরিচয় করিয়ে দেব । এটা খুবই সিম্পল একটা জিনিস । ভয় পাবার কোন কারণ নেই । GUI এর সম্পূর্ণ অর্থ হল : Graphical User Interface ।

এর মাধ্যমে আপনারা আজ থেকেই পাইথনের গ্রাফিক্স এর কাজ করা শুরু করতে পারবেন । তো চলুন শুরু করা যাক । প্রথমেই একটা উদাহরণ । সবাই নিচের কোডটি লিখুন :
এবার এটিকে পাইথন শেলের run module গিয়ে গিয়ে রান করান । দেখুন নিচের মত একটা উইন্ডো শো করছে ।



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

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

এবার নিচের কোডগুলি দেখুন । এই কোড হল উপরের গুই টার কোড ।

এখন আমরা এই কোড গুলো বিশ্লেষন করে দেখব কীভাবে আমরা এই রকম একটা গুই তৈরী করতে পারি ।
সর্বপ্রথমে দেখুন , আমরা পাইথনের একটা মডিউল ইমপোর্ট করেছি যার নাম "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 প্রোগ্রামিং এ অনেকে সমস্যায় পড়েন । বেশীভোগ ক্ষেত্রে দেখা যায় সমস্যা গুলো খুবই ছোট । তবুও ধরতে পারছেন না ।

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

সবাই ভাল থাকবেন ।

সোর্স: http://www.techtunes.com.bd/     দেখা হয়েছে ১০ বার

এর পর.....

অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।

প্রাসঙ্গিক আরো কথা
Related contents feature is in beta version.