কম্পিউটার টিউটোরিয়াল

Tkinter-এ নির্দিষ্ট টেক্সট নন-রিমুভেবল (অপসারণ নয়) করার পদ্ধতি


Tkinter-এ, ব্যবহারকারী দুটি বেসিক টেক্সট ইনপুট উইজেট ব্যবহার করে টেক্সট ইনপুট করতে পারেন - Text উইজেট এবং Entry উইজেট। Text উইজেট সাধারণত মাল্টিলাইন ইউজার ইনপুট গ্রহণ করতে ব্যবহৃত হয়, যখন Entry উইজেটে ব্যবহারকারী শুধু সিংগল-লাইন টেক্সট টাইপ করতে পারেন।

আপনি এই উইজেটগুলো কাস্টোমাইজ করতে পারেন এবং বিল্ট-ইন লাইব্রেরি ফাংশন এবং মেথড ব্যবহার করে অতিরিক্ত কার্যকারিতা যোগ করতে পারেন। একটি Entry উইজেটে ইনপুট ভ্যালিডেট করতে, আপনি register() মেথড ব্যবহার করতে পারেন। এই মেথডটি একটি স্ট্রিং রিটার্ন করে যা পরবর্তীতে ফাংশন কল করতে ব্যবহার করা যায়।

একটি Entry উইজেটে ইনপুট ভ্যালিডেট করতে, config(**options) মেথড ব্যবহার করুন এবং validate এবং validatecommand আর্গুমেন্ট পাস করুন।

  • validate − এটি নির্দেশ করে যে একটি দেয়া Entry বা Text উইজেটে ইনপুট ভ্যালিডেট করার জন্য কলব্যাক ফাংশন কখন কল হবে। উদাহরণস্বরূপ, "key" হল সেই মান যা নির্দেশ করে যে যখনই ব্যবহারকারী একটি কী (কীবোর্ড থেকে) প্রেস করবে, কলব্যাক ফাংশন কল হবে। আপনি অন্যান্য অপশনও ব্যবহার করতে পারেন যেমন focus, focusin, focusout, none, all ইত্যাদি।

  • validatecommand − এটি কলব্যাক ফাংশন দ্বারা রিটার্ন করা মান पर নির্ভর করে মান নির্দিষ্ট করে। validatecommand='f' এ মান নির্দিষ্ট করতে, আপনি 다양한 কলব্যাক সাবস্টিটিউশন কোড ব্যবহার করতে পারেন যা বলে কীভাবে এবং কোন মানগুলো কলব্যাক ফাংশন দ্বারা রিটার্ন হয়।

একটি Entry উইজেটে ইনপুট ভ্যালিডেট করতে, আপনাকে কলব্যাক ফাংশন রেজিস্টার করতে হবে এবং কলব্যাক ফাংশনে সংজ্ঞায়িত শর্ত চেক করার আর্গুমেন্ট পাস করে Entry উইজেট কনফিগার করতে হবে।

উদাহরণ

এখন একটি উদাহরণ বিবেচনা করুন যেখানে আমরা একটি Entry উইজেট ভ্যালিডেট করতে চাই যাতে ব্যবহারকারী একটি নির্দিষ্ট টেক্সট মুছে ফেলতে না পারে। সাথে সাথে, আমরা startswith("string") ফাংশন ব্যবহার করে সেটিকে নন-রিমুভেবল করতে পারি।

# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট করুন
from tkinter import *

# Tkinter উইন্ডো ইনস্ট্যান্স তৈরি করুন
win = Tk()
win.geometry("700x350")

# একটি টেক্সট নন-রিমুভেবল করার ফাংশন সংজ্ঞায়িত করুন
def make_non_removable(text):
    return text.startswith("Enter your Email Id:")

# একটি এন্ট্রি উইজেট তৈরি করুন
entry = Entry(win, bg="black", fg="white")
entry.pack(side="top", fill="x")

# একটি ডিফল্ট টেক্সট যোগ করুন
entry.insert(END, "Enter your Email Id:")

validate_entry = (win.register(make_non_removable), '%P')
entry.config(validate='key', validatecommand=validate_entry)

win.mainloop()

আউটপুট

এগজিকিউশন করলে, এটি একটি উইন্ডোতে একটি Entry উইজেট দেখাবে যাতে ডিফল্ট নন-রিমুভেবল টেক্সট "Enter your Email Id:" থাকবে।

Tkinter-এ নির্দিষ্ট টেক্সট নন-রিমুভেবল (অপসারণ নয়) করার পদ্ধতি

  1. Tkinter Text Widgetকে Read-Only বা ডিজেবল করা

  2. Tkinter-এ বাটন টেক্সট ডাইনামিক্যালি রিসাইজ করা

  3. Tkinter Text Box-এর কন্টেন্ট ডিলিট করা

  4. Tkinter-এ Entry উইজেটে প্লেসহোল্ডার (Placeholder) যোগ করা