টিসিএল (Tcl) - Buttons এবং Labels তৈরি এবং তাদের Properties সেট করা
টিসিএল (Tcl) এর Tk টুলকিট ব্যবহার করে সহজেই Buttons এবং Labels তৈরি করা যায় এবং তাদের বিভিন্ন properties কাস্টমাইজ করা যায়। Tk উইজেটসের মধ্যে Button এবং Label সবচেয়ে সাধারণ এবং গুরুত্বপূর্ণ উপাদান, যা ব্যবহারকারীর সাথে ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয়।
এখানে Buttons এবং Labels তৈরি এবং তাদের Properties সেট করার বিস্তারিত আলোচনা করা হলো।
১. Buttons তৈরি এবং তাদের Properties সেট করা
Tk-এ বাটন তৈরি করতে button উইজেট ব্যবহার করা হয় এবং এর বিভিন্ন properties বা বৈশিষ্ট্য সেট করা যায়, যেমন টেক্সট, ফন্ট, ব্যাকগ্রাউন্ড, ফোরগ্রাউন্ড রঙ, আকার, এবং কমান্ড ইত্যাদি।
উদাহরণ: বাটন তৈরি এবং তার properties সেট করা
package require Tk
# উইন্ডো তৈরি
set window [tk::toplevel .]
# বাটন তৈরি
button $window.myButton -text "Click Me" \
-bg "blue" -fg "white" -font "Helvetica 12 bold" \
-command {puts "Button Clicked!"}
# বাটনটি প্যাক করা
pack $window.myButton
# ইভেন্ট লুপ শুরু
tk::MainLoopএখানে:
-textদিয়ে বাটনের টেক্সট নির্ধারণ করা হয়েছে (এখানে "Click Me")।-bgদিয়ে বাটনের ব্যাকগ্রাউন্ড রঙ (নীল) নির্ধারণ করা হয়েছে।-fgদিয়ে বাটনের ফন্টের রঙ (সাদা) নির্ধারণ করা হয়েছে।-fontদিয়ে ফন্টের স্টাইল এবং সাইজ (হেলভেটিকা, সাইজ ১২, বোল্ড) নির্ধারণ করা হয়েছে।-commandদিয়ে বাটন ক্লিক করার পর যে কোডটি চালানো হবে তা নির্ধারণ করা হয়েছে (এখানে"Button Clicked!"মেসেজ প্রিন্ট হবে)।
২. Labels তৈরি এবং তাদের Properties সেট করা
Label উইজেটটি ব্যবহারকারীর জন্য একটি স্থির টেক্সট বা ছবি প্রদর্শন করতে ব্যবহৃত হয়। Tk-এ লেবেল তৈরি করতে label উইজেট ব্যবহার করা হয়, এবং এর properties কাস্টমাইজ করা যায় যেমন টেক্সট, ফন্ট, ব্যাকগ্রাউন্ড রঙ, ফন্ট রঙ, আকার, এবং অবস্থান ইত্যাদি।
উদাহরণ: লেবেল তৈরি এবং তার properties সেট করা
package require Tk
# উইন্ডো তৈরি
set window [tk::toplevel .]
# লেবেল তৈরি
label $window.myLabel -text "Hello, Tk!" \
-bg "yellow" -fg "black" -font "Arial 14 italic"
# লেবেলটি প্যাক করা
pack $window.myLabel
# ইভেন্ট লুপ শুরু
tk::MainLoopএখানে:
-textদিয়ে লেবেলের টেক্সট নির্ধারণ করা হয়েছে (এখানে "Hello, Tk!").-bgদিয়ে লেবেলের ব্যাকগ্রাউন্ড রঙ (হলুদ) নির্ধারণ করা হয়েছে।-fgদিয়ে লেবেলের ফন্টের রঙ (কালো) নির্ধারণ করা হয়েছে।-fontদিয়ে ফন্টের স্টাইল এবং সাইজ (এয়ারিয়াল, সাইজ ১৪, ইটালিক) নির্ধারণ করা হয়েছে।
৩. Buttons এবং Labels এর মধ্যে পার্থক্য
- Button: এটি ব্যবহারকারীকে ক্লিক করার জন্য একটি ইন্টারঅ্যাকটিভ উপাদান। বাটনটি কোনো কমান্ড বা ফাংশন চালানোর জন্য ব্যবহৃত হয়, যা বাটনটি ক্লিক করলে কার্যকর হয়।
- Label: এটি একটি স্ট্যাটিক উপাদান যা সাধারণত কোনো বার্তা বা টেক্সট দেখানোর জন্য ব্যবহৃত হয়। লেবেলটি ইন্টারঅ্যাকটিভ নয়, অর্থাৎ এটি ক্লিক করার জন্য নয়।
৪. Additional Properties of Buttons and Labels
বাটনের অন্যান্য properties:
- -width: বাটনের প্রস্থ (number of characters) সেট করে।
- -height: বাটনের উচ্চতা (number of lines) সেট করে।
- -state: বাটনকে সক্রিয় বা নিষ্ক্রিয় করা যায় (
normal,disabled)। - -padx, -pady: বাটনের ভিতরের প্যাডিং (horizontal এবং vertical) সেট করে।
button $window.myButton -text "Click Me" \
-bg "blue" -fg "white" -font "Helvetica 12 bold" \
-width 20 -height 2 -state normal -padx 10 -pady 10 \
-command {puts "Button Clicked!"}লেবেলের অন্যান্য properties:
- -justify: টেক্সট কিভাবে সজ্জিত হবে (যেমন
left,center,right)। - -image: লেবেলে একটি ছবি প্রদর্শন করা যায়।
- -wraplength: টেক্সটটি কিভাবে ভাঁজ হবে (পূর্বে উল্লেখিত লাইন সাইজে)।
label $window.myLabel -text "This is a label with long text that will wrap when it reaches the wrap length." \
-bg "yellow" -fg "black" -font "Arial 14" -wraplength 150৫. Button এবং Label এর Event Handling
আপনি বাটন বা লেবেলের জন্য বিভিন্ন ইভেন্ট সেট করতে পারেন। যেমন বাটনে ক্লিক হলে কিছু কাজ করতে, বা লেবেলে মাউস ওভার হলে কিছু করা।
উদাহরণ: বাটন ক্লিক ইভেন্ট হ্যান্ডলিং
button $window.myButton -text "Click Me" \
-bg "blue" -fg "white" -font "Helvetica 12 bold" \
-command {puts "Button clicked!"}উদাহরণ: লেবেলে মাউসওভার ইভেন্ট হ্যান্ডলিং
label $window.myLabel -text "Hover over me!" \
-bg "yellow" -fg "black" -font "Arial 14"
bind $window.myLabel <Enter> {puts "Mouse entered the label!"}
bind $window.myLabel <Leave> {puts "Mouse left the label!"}উপসংহার
Buttons এবং Labels Tk উইজেটগুলির মধ্যে সবচেয়ে গুরুত্বপূর্ণ উপাদান, যা GUI অ্যাপ্লিকেশনগুলিতে ইন্টারঅ্যাকটিভ এবং স্ট্যাটিক উপাদান হিসেবে ব্যবহৃত হয়। Tk-এ এগুলোর প্রপার্টিজ কাস্টমাইজ করা খুবই সহজ এবং এতে অনেক বিকল্প রয়েছে যেমন টেক্সট, ব্যাকগ্রাউন্ড রঙ, ফন্ট, আকার, অবস্থান ইত্যাদি। Buttons ব্যবহারকারীর ক্লিকের জন্য ইন্টারঅ্যাকটিভ উপাদান হিসাবে ব্যবহৃত হয়, এবং Labels সাধারণত ডেটা বা বার্তা প্রদর্শনের জন্য ব্যবহৃত হয়।
Read more