Grid এবং Pack Geometry Manager এর ব্যবহার

Buttons, Labels, এবং Frames (বাটনস, লেবেলস, এবং ফ্রেমস) - টিসিএল/টিকে (Tcl/Tk) - Computer Programming

357

টিসিএল (Tcl) - Grid এবং Pack Geometry Manager এর ব্যবহার

টিসিএল (Tcl) এর Tk টুলকিটের মাধ্যমে Geometry Manager ব্যবহৃত হয় উইজেটগুলোকে কিভাবে অবস্থান ও আকারে সাজানো হবে তা নিয়ন্ত্রণ করার জন্য। Tk-এ দুইটি প্রধান Geometry Manager আছে: pack এবং **grid**। এই দুটি ব্যবস্থাপনা উইজেটগুলোকে বিভিন্নভাবে সাজানোর জন্য ব্যবহৃত হয়।

এখানে আমরা pack এবং grid এর ব্যবহার এবং তাদের মধ্যে পার্থক্য নিয়ে বিস্তারিত আলোচনা করব।


১. Pack Geometry Manager

pack একটি সহজ এবং জনপ্রিয় গিয়ারোট্রি ম্যানেজার যা উইজেটগুলিকে একটি নির্দিষ্ট অক্ষের উপর সাজাতে ব্যবহৃত হয়, যেমন অনুভূমিক (horizontal) বা উল্লম্ব (vertical)। আপনি উইজেটের অবস্থান নিয়ন্ত্রণ করতে -side অপশন ব্যবহার করতে পারেন।

১.১. Pack এর মূল অপশনগুলো:

  • -side: উইজেটটি কোন পাশে প্যাক হবে (top, bottom, left, right)।
  • -fill: উইজেটটি এক্সটেন্ড হবে কি না তা নির্ধারণ করে (x, y, both, none)।
  • -expand: উইজেটটি প্যাক করা কন্টেইনারের মধ্যে সঠিকভাবে বিতরণ হবে কি না।
  • -anchor: উইজেটের মধ্যে নির্দিষ্ট পজিশন, যেমন n, e, s, w, ne, ইত্যাদি।

১.২. Pack এর উদাহরণ:

button .btn1 -text "Button 1"
button .btn2 -text "Button 2"
button .btn3 -text "Button 3"

pack .btn1 .btn2 .btn3 -side top -fill x -pady 10

এখানে, btn1, btn2, এবং btn3 নামক তিনটি বাটন প্যাক করা হয়েছে। এগুলি উল্লম্বভাবে (top) সাজানো হয়েছে এবং এগুলোর প্রস্থ পূর্ণ (fill x) করা হয়েছে, যার ফলে তারা উইন্ডোর সম্পূর্ণ প্রস্থে ফিট করবে। -pady 10 অপশনটি তাদের মধ্যে ১০ পিক্সেলের ভরাট জায়গা রাখবে।

১.৩. Pack এর আরও উদাহরণ:

button .btn1 -text "Left Button"
button .btn2 -text "Right Button"
button .btn3 -text "Top Button"

pack .btn1 .btn2 -side left -padx 10
pack .btn3 -side top -fill x

এখানে, btn1 এবং btn2 দুটি বাটন left দিকে প্যাক করা হয়েছে এবং তাদের মধ্যে অনুভূমিক (horizontal) জায়গা দেওয়া হয়েছে। btn3 বাটনটি উইন্ডোর উপরের দিকে প্যাক করা হয়েছে এবং এটি পুরো প্রস্থ (fill x) ব্যবহার করবে।

২. Grid Geometry Manager

grid ম্যানেজারটি উইজেটগুলোকে একটি সারণী বা টেবিলের মতো সাজানোর জন্য ব্যবহৃত হয়। আপনি row এবং column সিস্টেম ব্যবহার করে উইজেটগুলিকে সুনির্দিষ্টভাবে অবস্থান দিতে পারেন। grid প্যাকিং থেকে বেশি সুনির্দিষ্টভাবে উইজেটের সাইজ এবং অবস্থান নিয়ন্ত্রণ করতে সক্ষম।

২.১. Grid এর মূল অপশনগুলো:

  • -row: উইজেটটি কোন সারিতে থাকবে তা নির্ধারণ করে।
  • -column: উইজেটটি কোন কলামে থাকবে তা নির্ধারণ করে।
  • -rowspan: একাধিক সারিতে উইজেট সম্প্রসারিত হবে কিনা।
  • -columnspan: একাধিক কলামে উইজেট সম্প্রসারিত হবে কিনা।
  • -sticky: উইজেটের অবস্থান নির্ধারণের জন্য (যেমন, n, e, s, w, ne ইত্যাদি)।
  • -padx, -pady: উইজেটের চারপাশে প্যাডিং যোগ করা।

২.২. Grid এর উদাহরণ:

button .btn1 -text "Button 1"
button .btn2 -text "Button 2"
button .btn3 -text "Button 3"
button .btn4 -text "Button 4"

grid .btn1 -row 0 -column 0 -sticky ew
grid .btn2 -row 0 -column 1 -sticky ew
grid .btn3 -row 1 -column 0 -sticky ew
grid .btn4 -row 1 -column 1 -sticky ew

এখানে, ৪টি বাটন grid ম্যানেজার ব্যবহার করে দুটি সারি এবং দুটি কলামে সাজানো হয়েছে। -sticky ew অপশনটি উইজেটকে উল্লম্ব এবং অনুভূমিকভাবে প্রসারিত করবে (fill east-west), অর্থাৎ প্রতিটি বাটন তার কলাম পূর্ণ করবে।

২.৩. Grid এর আরও উদাহরণ:

button .btn1 -text "Top Left"
button .btn2 -text "Top Right"
button .btn3 -text "Bottom Left"
button .btn4 -text "Bottom Right"

grid .btn1 -row 0 -column 0 -sticky nw
grid .btn2 -row 0 -column 1 -sticky ne
grid .btn3 -row 1 -column 0 -sticky sw
grid .btn4 -row 1 -column 1 -sticky se

এখানে, ৪টি বাটন ২টি সারি ও কলামে সাজানো হয়েছে। প্রতিটি বাটন তার সেলকে নির্দিষ্টভাবে স্নিগ্ধভাবে (nw, ne, sw, se) প্যাক করার জন্য -sticky ব্যবহার করা হয়েছে।

৩. Pack এবং Grid এর মধ্যে পার্থক্য

বিষয়PackGrid
ব্যবহারসাধারণভাবে উইজেট সাজানোর জন্য ব্যবহৃত হয়উইজেটকে সুনির্দিষ্টভাবে টেবিল বা গ্রিডে সাজানোর জন্য ব্যবহৃত হয়
অবস্থানউল্লম্ব বা অনুভূমিক (top, bottom, left, right)সারি (row) এবং কলাম (column) ভিত্তিক
ফ্লেক্সিবিলিটিসাধারণ এবং দ্রুত ব্যবহারের জন্য ভালোসুনির্দিষ্ট পজিশনিংয়ের জন্য উপযুক্ত
উপযুক্ততাসহজ লেআউট ডিজাইন এবং ছোট স্ক্রিপ্টবড় স্ক্রিপ্ট এবং বিস্তারিত লেআউট ডিজাইন

৪. Pack এবং Grid একসাথে ব্যবহার করা

কিছু বিশেষ ক্ষেত্রে, আপনি একসাথে pack এবং grid ম্যানেজার ব্যবহার করতে পারেন, তবে এটি পরামর্শিত নয়। সাধারণত, একটিই ব্যবহৃত হয়, তবে যদি একাধিক উইজেটের জন্য আলাদা ম্যানেজার ব্যবহার করা হয়, তাহলে নিশ্চিত করুন যে সেগুলির মধ্যে সংঘর্ষ হবে না।

button .btn1 -text "Pack Button"
button .btn2 -text "Grid Button"

pack .btn1
grid .btn2 -row 0 -column 0

এখানে, .btn1 pack ম্যানেজার ব্যবহার করছে এবং .btn2 grid ম্যানেজার ব্যবহার করছে।


উপসংহার

pack এবং grid হল Tk-তে ব্যবহৃত দুইটি প্রধান Geometry Manager যা উইজেটগুলিকে সাজানোর জন্য ব্যবহৃত হয়। pack সহজ এবং দ্রুত ব্যবহারের জন্য উপযুক্ত, যেখানে আপনি উইজেটগুলোকে উল্লম্ব বা অনুভূমিকভাবে সাজাতে পারেন। অন্যদিকে grid পদ্ধতি উইজেটগুলিকে সুনির্দিষ্টভাবে সারি এবং কলামে সাজানোর জন্য ব্যবহৃত হয়, যা টেবিল বা গ্রিড লেআউটের জন্য উপযুক্ত। আপনার স্ক্রিপ্টের চাহিদার ভিত্তিতে, আপনি যেকোনো একটি বা দুটি পদ্ধতিই ব্যবহার করতে পারেন, তবে সাধারণত একসাথে ব্যবহারের ক্ষেত্রে সাবধানতা অবলম্বন করা উচিত।

Content added By
Promotion

Are you sure to start over?

Loading...