পূর্বে আমরা পাইথন দিয়ে কি কি করা যায় অংশে GUI নিয়ে কিছুটা আলোচনা করা হয়েছে। তবুও আলোচনার সুবিধার্থে এখানে সামান্য কিছুর পুনরাবৃত্তি করব।

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

পাইথনে অনেকগুলো GUI লাইব্রেরি আছে, তার মধ্যে Tkinter ই এখন পর্যন্ত সবচেয়ে বেশি ব্যবহার করা হয়। সবচেয়ে বড় ব্যাপার এই যে এটি পাইথন ৩ সংস্করণ থেকে পাইথনের সাথেই দিয়ে দেওয়া হয়েছে, নতুন করে ইনস্টল করার প্রয়োজন নেই।

প্রথম উইন্ডো তৈরি করা (Creating first window)

এখন আমরা একটি উইন্ডো তৈরি করা দেখব। খুবই সহজ –

import tkinter # importing the tkinter

window = tkinter.Tk()

window.mainloop()

এই কোডটি রান করলে নিচের মত একটি খালি উইন্ডো দেখা যাবে।

tkinter ব্যবহার করে পাইথনে প্রথম উইন্ডো তৈরি করা।
  • ১ম লাইনে tkinter ইমপোর্ট করা হয়ছে, অর্থাৎ প্রোগ্রামে বলে দিচ্ছি যে এই মডিউলটি আমরা ব্যবহার করব।
  • ৩য় লাইনে TK() মেথড ব্যবহার করে একটা উইন্ডো তৈরি করা হয়ছে।
  • ৫ম লাইনে একটা লুপ ব্যবহার করা হয়েছে। mainloop() একটা স্পেশাল ধরনের ফাংশন যেটা উইন্ডোটি যতক্ষণ না বন্ধ করা হবে ততক্ষণ অসীমভাবে চলতে থাকবে; অর্থাৎ এটিই মূলত উইন্ডোটিকে আমাদের সামনে দৃশ্যমান করে তোলে।

tkinter উইজেট (tkinter widget)

tkinter এর সমস্ত কিছুই উইজেট হিসেবে থাকে। সচরাচর ব্যবহৃত সকল উপাদানই এখানে উইজেট হিসেবে সংরক্ষিত আছে। আমরা একে একে সবগুলোকে দেখে নেব কিভাবে ব্যবহার করা যায়।

button()

উইন্ডোতে কোন বাটন তৈরি করার জন্য এই উইজেটটি ব্যবহার করা হয়।

import tkinter 

window = tkinter.Tk()

btn=tkinter.Button(window,text="Click Here")
btn.pack()

window.mainloop()

এই কোডটি রান করলে নিচের মত একটা উইন্ডো দেখতে পাব-

tkinter ব্যবহার করে পাইথনে বাটন তৈরি।

উইন্ডটিতে “Click Here” নামে একটি বাটন তৈরি হয়েছে। কিন্তু বাটনটিতে ক্লিক করলে কি হবে সেটা এখনো বলে দেইনি তাই এটাতে ক্লিক করলে কোন ফলাফল দেখা যাবেনা। বাটন ক্লিকের কোন action এর জন্য command attribute টি ব্যবহার করা হয়।

# This example is to work with tkinter button using python

import tkinter 

window = tkinter.Tk()

btn=tkinter.Button(window,text="Click Here",command=window.destroy)
btn.pack()

window.mainloop()

এই কোডটি রান করলে যে উইন্ডোটি আসবে সেই বাটনে ক্লিক করলে উইন্ডোটি বন্ধ হয়ে যাব, কারণ আমরা ৭ম লাইনে command এ বিল্ট-ইন মেথড destroy() দিয়ে উইন্ডোটি বন্ধ করে দিয়েছি।

এখানে উল্লেখ্য, ৮ম লাইনে pack() মেথডটি ব্যবহার করা হয়েছে এলাইনমেন্টের জন্য, এক কথায় লে আউটের জন্য। tkinter এ এই ধরণের তিনটি মেথড আছে।

প্রথমটি হচ্ছে pack(), যেটা একই কলামে পরপর উইজেটগুলো বসানোর জন্য ব্যবহার করা হয়।

দ্বিতীয়ত, grid(); এটি লে আউটটিকে টেবিলের মত একটি গ্রিডে পরিণত করে এবং উইজেটগুলো গ্রিডে গ্রিডে বসায়।

সর্বশেষ, place(); এটি উইজেটগুলো একটি নির্দিষ্ট পজিশনে বসায়।

এছাড়া প্রতিটি উইজেট এর জন্য বিভিন্ন রকমের প্রপার্টি (Property) আছে যেগুলো ব্যবহার করে খুব সহজেই নতুন নতুন ডিজাইন করা যায়। এখান আমরা বাটনের প্রপার্টিগুলো দেখে নেই-

নাম নমুনা বর্ণনা
activebackground যেকোন হেক্সাডেসিমাল কালার ভ্যালু যেমন – #000000 বা সরাসরি কালারের নাম যেমন – black, green ইত্যাদি।Background সক্রিয় থাকার সময় কি কালার থাকবে সেটা ডিফাইন করে দেওয়ার জন্য ব্যবহার করা হয়।
activeforeground যেকোন হেক্সাডেসিমাল কালার ভ্যালু যেমন – #000000 বা সরাসরি কালারের নাম যেমন – black, green ইত্যাদি। বাটনে ক্লিক করার সময় অর্থাৎ বাটনটি active থাকার সময় কি কালার থাকবে সেটা নির্ধারণ করে দেবার জন্য ব্যবহার করা হয়।
bd পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি।বর্ডার কতটুকু চওড়া বা মোটা হবে সেটা নির্ধারণ করে দেবার জন্য এটা ব্যবহার করা হয়।
bg যেকোন হেক্সাডেসিমাল কালার ভ্যালু যেমন – #000000 বা সরাসরি কালারের নাম যেমন – black, green ইত্যাদি। বাটনের ব্যাকগ্রাউন্ড কালার কি হবে সেটা নির্ধারণ করার জন্য ব্যবহার করা হয়।
command ফাংশনের নাম।কোন ফাংশন বা কলব্যাক ফাংশনকে কল করার জন্য ব্যবহার করা হয়।
fg যেকোন হেক্সাডেসিমাল কালার ভ্যালু যেমন – #000000 বা সরাসরি কালারের নাম যেমন – black, green ইত্যাদি। বাটনের ফন্ট কালার কি হবে সেটা নির্ধারণ করার জন্য ব্যবহার করা হয়।
font ফন্টের নামবাটনের ফন্ট পরিবর্তনের জন্য ব্যবহৃত হয়।
height পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি। বাটনের উচ্চতা নির্ণয়ের জন্য ব্যবহার করা হয়।
image ইমেজের লোকেশন বা নাম দিতে হয়। যেমন – file=”python.png”বাটনে ছবি ব্যবহার করার জন্য ব্যবহার করা হয়।
justify তিনটি ভ্যাল্উ আছে। left, center, এবং right.বাটনের অবস্থান নির্দিষ্ট করে দেবার জন্য ব্যবহার করা হয়। অর্থাৎ বাটন কি ডানে, বামে বা কেন্দ্রে হবে সেটা নির্ধারণ করে দেওয়া হয়।
padx পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি।x এর দিকে অর্থাৎ বাটনের ডানে বা বামে প্যাডিং দেবার জন্য ব্যবহার করা হয়।
pady পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি।y এর দিকে অর্থাৎ বাটনের উপরে বা নিচে প্যাডিং দেবার জন্য ব্যবহার করা হয়।
relief ভ্যালু – flat, raised, sunken, groove, ridgeবাটনের বর্ডার ডিজাইন করার জন্য ব্যবহার করা হয়।
state সাধারণভাবে এটা সক্রিয় থাকে। state=”disabled” দিলে বাটনটি নিষ্ক্রিয় দেখাবে।বাটন নিষ্ক্রিয় থাকবে নাকি সক্রিয় থাকবে সেটা নির্ধারণ করার জন্য ব্যবহার করা হয়।
underline ডিফল্ট ভ্যালু -1, প্রথম অক্ষর 0 থেকে শুরু হবে।কোন ক্যারেক্টারকে আন্ডারলাইন করার জন্য ব্যবহার করা হয়।
width পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি। বাটনের প্রস্থ নির্ণয়ের জন্য ব্যবহার করা হয়।
wraplength পিক্সেল ভ্যালু অর্থাৎ যেকোন পূর্ণসংখ্যা যেমন ২,৫,১০,২০ ইত্যাদি।বাটনের প্রস্থ কতটুকু হবে সেটা নির্ধারণ করার জন্য ব্যবহার করা হয়।