Text Entry Widgets এর মাধ্যমে ডেটা ইনপুট

Working with Forms এবং Input Validation (ফর্ম এবং ইনপুট ভ্যালিডেশন) - টিসিএল/টিকে (Tcl/Tk) - Computer Programming

284

টিসিএল (Tcl) - Text Entry Widgets এর মাধ্যমে ডেটা ইনপুট

Tk টুলকিটের মাধ্যমে Text Entry Widgets ব্যবহার করে ব্যবহারকারীর কাছ থেকে ডেটা ইনপুট নেওয়া যায়। Tk-এ entry উইজেট ব্যবহার করা হয় যখন আপনি ব্যবহারকারীর কাছ থেকে একটি একক লাইন ইনপুট নিতে চান। আর text উইজেট ব্যবহার করা হয় যখন অনেক লাইন অথবা বড় ইনপুট গ্রহণ করতে হয়। এই উইজেটগুলোর মাধ্যমে আপনি সহজে ডেটা গ্রহণ করতে পারেন এবং সেই ডেটা প্রোগ্রামের মধ্যে ব্যবহার করতে পারেন।

এখানে Text Entry Widgets এবং তাদের মাধ্যমে ডেটা ইনপুট নেওয়ার পদ্ধতি আলোচনা করা হলো।


১. Entry Widget এর মাধ্যমে ডেটা ইনপুট

Tk-এ entry উইজেট ব্যবহার করা হয় একক লাইন ইনপুট নেওয়ার জন্য। এটি সাধারণত ব্যবহারকারীর কাছ থেকে নাম, ইমেইল, বা ছোট ছোট টেক্সট ইনপুট নেওয়ার জন্য ব্যবহৃত হয়।

সিনট্যাক্স:

entry $window.entryName -width 30

এখানে:

  • $window.entryName হলো entry উইজেটের নাম।
  • -width দ্বারা ইনপুট ফিল্ডের প্রস্থ নির্ধারণ করা হয়।

উদাহরণ:

package require Tk
set window [tk::mainwindow]

label $window.l -text "Enter your name:"
entry $window.e -width 30
button $window.b -text "Submit" -command {puts "Hello, [get $window.e]!"}

pack $window.l
pack $window.e
pack $window.b

এখানে, একটি entry উইজেট ব্যবহার করা হয়েছে যাতে ব্যবহারকারী নাম ইনপুট করতে পারবেন। বাটনে ক্লিক করলে ব্যবহারকারীর ইনপুটে "Hello, <Name>" মেসেজ প্রিন্ট হবে।


২. Text Widget এর মাধ্যমে ডেটা ইনপুট

text উইজেট ব্যবহার করা হয় যখন আপনি একাধিক লাইন ইনপুট নিতে চান, যেমন মন্তব্য বা অন্যান্য বড় ডেটা। এটি মাল্টি-লাইন টেক্সট এডিটর হিসেবে কাজ করে।

সিনট্যাক্স:

text $window.textName -width 40 -height 10

এখানে:

  • $window.textName হলো text উইজেটের নাম।
  • -width এবং -height দ্বারা টেক্সট উইজেটের আকার নির্ধারণ করা হয়।

উদাহরণ:

package require Tk
set window [tk::mainwindow]

label $window.l -text "Enter your message:"
text $window.t -width 40 -height 10
button $window.b -text "Submit" -command {
    puts "Message: [get $window.t]"
}

pack $window.l
pack $window.t
pack $window.b

এখানে, একটি text উইজেট ব্যবহার করা হয়েছে যাতে ব্যবহারকারী অনেক লাইন ইনপুট দিতে পারেন। বাটনে ক্লিক করলে ইনপুটted মেসেজটি প্রিন্ট হবে।


৩. Text Entry Widget থেকে ডেটা পড়া (Getting Data from Entry or Text Widget)

ডেটা entry বা text উইজেট থেকে পড়তে get কমান্ড ব্যবহার করা হয়। এই কমান্ডটি আপনাকে উইজেটের মধ্যে দেওয়া ইনপুট ডেটা রিটার্ন করবে।

Entry উইজেট থেকে ডেটা পড়া:

set userInput [get $window.e]
puts "User input: $userInput"

Text উইজেট থেকে ডেটা পড়া:

set userText [get $window.t]
puts "User message: $userText"

এখানে, get কমান্ডটি ইনপুটted ডেটাকে কপি করে এনে সেই ডেটা ব্যবহার করার জন্য প্রস্তুত করে।


৪. Text Entry Widget-এ ডেটা সেট করা (Setting Data in Entry or Text Widget)

আপনি entry বা text উইজেটে ডেটা সেট করতে insert কমান্ড ব্যবহার করতে পারেন। এটি ব্যবহার করে আপনি প্রোগ্রামmatically ডেটা ইনপুট করতে পারেন।

Entry উইজেটে ডেটা সেট করা:

insert $window.e 0 "John Doe"

এখানে, insert কমান্ডটি entry উইজেটের প্রথম স্থানে "John Doe" ইনপুট করবে।

Text উইজেটে ডেটা সেট করা:

insert $window.t "This is a message"

এখানে, insert কমান্ডটি text উইজেটে "This is a message" ইনপুট করবে।


৫. Entry বা Text Widget এ ভ্যালিডেশন (Validation in Entry or Text Widget)

আপনি entry উইজেটের মাধ্যমে ডেটা ইনপুট করার সময় তার ভ্যালিডেশন করতে পারেন। Tk-এ validate অপশন ব্যবহার করে আপনি ইন্টারফেসে ইনপুট ভ্যালিডেশন করতে পারবেন।

উদাহরণ (এন্ট্রি উইজেটের ভ্যালিডেশন):

package require Tk
set window [tk::mainwindow]

proc validateInput {input} {
    if {![regexp {^\d+$} $input]} {
        return 0  ;# Invalid input (not a number)
    }
    return 1  ;# Valid input
}

label $window.l -text "Enter a number:"
entry $window.e -validate key -validatecommand [list validateInput %P]
button $window.b -text "Submit" -command {puts "Valid number: [get $window.e]"}
pack $window.l
pack $window.e
pack $window.b

এখানে, validate এবং validatecommand ব্যবহার করে শুধুমাত্র সংখ্যা ইনপুট করতে সক্ষম হবে। যদি ব্যবহারকারী কোনো অক্ষর ইনপুট দেন, তাহলে তার ইনপুট মঞ্জুর করা হবে না।


৬. Entry বা Text Widget এর মান পরিবর্তন (Changing the Value of Entry or Text Widget)

আপনি entry বা text উইজেটের মান পরিবর্তন করতে delete এবং insert কমান্ড ব্যবহার করতে পারেন।

Entry উইজেটের মান পরিবর্তন:

delete $window.e 0 end
insert $window.e 0 "New Value"

এখানে, delete কমান্ডটি প্রথম থেকে শেষ পর্যন্ত পুরানো মান মুছে ফেলবে এবং insert কমান্ডটি নতুন মান সেট করবে।


উপসংহার

Tk-এ Text Entry Widgets ব্যবহার করে আপনি ব্যবহারকারীর কাছ থেকে ইনপুট সংগ্রহ করতে পারেন। entry উইজেট সাধারণত একক লাইন ইনপুটের জন্য ব্যবহৃত হয়, যখন text উইজেট অনেক লাইন ইনপুট গ্রহণ করতে ব্যবহৃত হয়। আপনি get, insert, delete কমান্ড ব্যবহার করে এই উইজেটগুলিতে ডেটা পাঠাতে এবং পড়তে পারেন। এছাড়া, validate অপশন ব্যবহার করে আপনি ইনপুটের ভ্যালিডেশনও করতে পারেন। Tk-এ Text Entry Widgets খুবই সহজ এবং কার্যকর উপায় ইনপুট নেওয়ার জন্য।

Content added By
Promotion

Are you sure to start over?

Loading...