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

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

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

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

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 অপশনে গিয়ে রান করান । এবং যেকোন মেনুতে ক্লিক করুন ও তারপর বাটনে ক্লিক করুন । তারপর আপনাদের সামনে এমন একটা চিত্র আসবে :

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

Level 2

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

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


টিউনস


আরও টিউনস


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


টিউমেন্টস

ধন্যবাদ ভাই। চালিয়ে জান……সাথেই আছি।

thank you sajal via. but mone hocca are basi din continue korte parbo na .

অনেক ধন্যবাদ ভাই। কমপ্লিট কোর্সটা করতে পারলে ভাল লাগত।

    @Ashikur Rahman: @রাজ্: ভাই, আমি চেষ্টা করব । আপনাদের ধন্যবাদ।

    @Ashikur Rahman: @রাজ্: ভাই, আমি চেষ্টা করব । আপনাদের অসংখ্য ধন্যবাদ । আপনাদের কয়েকজনের কারণেই আমি এই পর্যন্ত আসতে পেরেছি ।

ভাই প্লিস চালিয়ে যাবেন আশা করি

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

    @nahidchayan: ভাই . আপনি একটু আমার সাথে ফেবু তে যোগাযোগ করেন । বিষয়টা বুঝিয়ে বলছি ।

ওয়েব ডিজাইন কি? কেন শিখবেন? কি কি শিখবেন? কিভাবে কাজ করবেন?
বিস্তারিত দেখুন…..
https://bit.ly/2FygM7o