আমার প্রিয় টেকটিউনসের পাঠকরা , আশা করি সবাই ভাল আছেন । আজ বেশ কিছু দিন পর আমি আপনাদের মাঝে পাইথন নিয়ে আসলাম । আমরা আজ দেখব কীভাবে পাইথনে মেনুবার তৈরী করতে হয় । এটি একটা খুবই সহজ কাজ । আপনারা আজই এই সম্পর্কে মোটামুটি জ্ঞান লাভ করবেন । তো চলুন দেখে নেওয়া যাক এই কাজের কৌশল । প্রথমে নিচের চিত্র টা দেখুন , এইটা এখন আপনাদের তৈরী করে দেখাব ।
এবার এই পাইথন গুই টার সোর্স কোড দেখুন নিচে :
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 অপশনে গিয়ে রান করান । এবং যেকোন মেনুতে ক্লিক করুন ও তারপর বাটনে ক্লিক করুন । তারপর আপনাদের সামনে এমন একটা চিত্র আসবে :
সবাই ভাল থাকুন । সবাইকে ধন্যবাদ । আর কতদিন পরে আপনাদের মাঝে আসতে পারব তা বলতে পারছি না । সেই পর্যন্ত সবাই ভাল থাকবেন ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...
ধন্যবাদ ভাই। চালিয়ে জান……সাথেই আছি।