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

5
430

আমার প্রিয় টেকটিউনসের পাঠকরা , আশা করি সবাই ভাল আছেন । আজ বেশ কিছু দিন পর আমি আপনাদের মাঝে পাইথন নিয়ে আসলাম । আমরা আজ দেখব কীভাবে পাইথনে মেনুবার তৈরী করতে হয় । এটি একটা খুবই সহজ কাজ । আপনারা আজই এই সম্পর্কে মোটামুটি জ্ঞান লাভ করবেন । তো চলুন দেখে নেওয়া যাক এই কাজের কৌশল । প্রথমে নিচের চিত্র টা দেখুন , এইটা এখন আপনাদের তৈরী করে দেখাব ।

এবার এই পাইথন গুই টার সোর্স কোড দেখুন নিচে :

from tkinter import *
def hello():
    messagebox.askyesno("ask","are you really want to do this?")
def donothing():
    f = Toplevel(tt)
    button = Button(f, text="show info", command = hello)
    button.pack()

tt = Tk()
menubar = Menu(tt)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=tt.quit)
menubar.add_cascade(label="File", menu=filemenu)

editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
editmenu.add_separator()
editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)

helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)

tt.config(menu=menubar)
tt.mainloop()

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

এরপর আমরা আরেকটি ফাংশন তৈরী করেছি donothing নামের যেটা f = Toplevel(tt) কোড এর মাধ্যমে একটা গুই সৃষ্টি করবে । এর পরের লাইনে আমি একটা কোড প্লেস করেছি যেটা উপরের গুই এর মাঝে একটা বাটন সৃষ্টি করেছে যার টেক্সক হবে techtunes G । এবং আমরা command = hello কোড দ্বারা বলে দিয়েছি যে এর বাটনে ক্লিক করলে এটি আমাদের উপরের তৈরী hello ফাংশনের ইয়েস নো উইন্ডোটি সো করবে । ব্যাস , আমাদের প্রাথমিক কাজ শেষ । এবার হল মেনু আইটেম তৈরী করার পালা । আসুন , দেখি কীভাবে এটি তৈরী করতে হয় ।

tt = Tk() দ্বারা আমরা আমাদের উপরের চিত্রের মূল গুই টা তৈরী করেছি । এরপর menu নামের একটা ভ্যারিয়েবল নিয়ে আমরা তার ভেতর Menu(tt) কোড দ্বারা মেনু তৈরী সূচনা করেছি । এর পর filemenu = Menu(menubar, tearoff=0) দ্বারা আমরা filemenu নামের একটা ভ্যারিয়েবল নিয়ে তারমধ্যে আমাদের মেনুবার , অর্থাৎ মেনুতে াক্লক করলে তার নিচে যে অপশন গুলো সো করবে সেই গুলো লেখা শুরু করার কথা ডিক্লেয়ার করেছি । এখানে আপনারা tearoff=0 এর মানেটা জানেন না । এটি হল একটা কমান্ড যেটি মেনু গুলো file লেখার কত নিচে থেকে শুরু হবে সেটাই বলে দেয় । এর মান ০ হলে file লেখার ঠিক নিচে থেকেই ড্রপডাউন মেনু গুলো সো করবে । আর এর মান ০ এর বেশী যেমন : ১ ২ ৩ প্রভৃতি হলে ড্রপডাউন মেনু গুলো একটা নির্দিষ্ট ডিসট্যান্স থেকে সো করবে । নিজে মান কম বেশী করে দেখুন , বিষয়টা ক্লিয়ার হবে ।

এরপর filemenu.add_command(label=”New”, command=donothing) কমান্ড দ্বারা আমরা আমাদের গুই তে প্রথম মেনু আইটেম যুক্ত করেছি । দেখুন , আপনারা যখন কোন মেনু আইটেম যুক্ত করতে যাবেন তখন আপনাদের ভ্যারিয়েবলের নামের পর . চিহ্ন দিয়ে add_command কোডটি লিখতে হবে । এরপর আমরা এর লেবেল বা নাম দিয়েছি New , এবং এটিতে ক্লিক করলে যা ঘটবে তা আমরা command=donothing দ্বারা বলে দিয়েছি যে এটাতে ক্লিক করলে donothing ফাংশন টি নিয়ে এসে সো কর । ব্যাস । এখন আপনারা যদি donothing এর স্থানে অন্য কোন ফাংশন তৈরী করে সেটিকমান্ডে দেন তা হলে সেই ফাংশনটিই এখানে কাজ করবে ।

যাই হো , এভাবে আমরা ফাইল মেনুর ভিতর সবগুলো মেনু আইটেম তৈরী করে ফেললাম । আপনারা যখন এই কাজ করবেন , তখন এক একটা মেনু আইটেম এর জন্য এক একটা আলাদা ফাংশন ইউজ করতে পারেন ।
এখন দেখুন আমরা exit মেনু আইটেম এর কমান্ড কিন্তু আলাদা দিয়েছি । এই tt.quit দ্বারা এই প্রোগ্রামটির কাজ সমাপ্ত ঘোষনা করা হচ্ছে ।

add_separator() এই কোড টার কাজ হল পর পর দুটি মেনু আইটেমের মধ্যে একটা দাগ বা সেপারেটর সৃষ্টি করা , যেমন উপরের চিত্রে ফাইল মেনুর মধ্যে খেয়াল করু exit মেনুর উপরে একট সেপারেটর আছে ।
এখন menubar.add_cascade(label=”File”, menu=filemenu) কোডটিউ হল সবথেকে গুরুত্বপূর্ন কোড । এই কোডের কাজ হল আমার এতক্ষন filemenu নামের ভ্যারিয়েবলের আন্ডারে যতগুলো সাবমেনু বা মেনু আইটেম তৈরী করে আসলাম সেগুলোকে মেনুবারে যোগ করে দেওয়া । এখানে আমরা এই মেনুর নাম দিয়েছি File ।
এখন আমাদের মেনু তৈরীর কাজ শেষ । এভাবে বাদবাকী সবগুলো মেনুর সাবমেনু তৈরী করে ফেলুন ও সেগুলোকে মেনুবারে এড করে দিন ।

tt.config(menu=menubar)

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

সবাই ভাল থাকুন । সবাইকে ধন্যবাদ । আর কতদিন পরে আপনাদের মাঝে আসতে পারব তা বলতে পারছি না । সেই পর্যন্ত সবাই ভাল থাকবেন ।

5 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here