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

Tkinter-ে অটো-কমপ্লিশন সহ কমবো বক্স তৈরি করা

Tkinter Combobox উইজেটটি একটি অ্যাপ্লিকেশনে ড্রপডাউন মেনু ইমপ্লিমেন্ট করার জন্য উপকারী উইজেটগুলোর মধ্যে একটি। এটি এন্ট্রি উইজেট এবং তদুপরি ListBox উইজেটের কম্বিনেশন ব্যবহার করে। আমরা এন্ট্রি ফিল্ডে আইটেমের নাম টাইপ করে (যদি এটি মেনু লিস্টে থাকে) মেনু আইটেম সিলেক্ট করতে পারি। যাইহোক, কখনও কখনও, такие কেস হতে পারে যখন আমাদের মেনু আইটেম সিলেক্ট করতে অটোকমপ্লিশন ব্যবহার করতে হয়।

একটি অটো-কমপ্লিশন কমবো বক্স তৈরি করতে, আমরা প্রথমে মেনুগুলো লিস্ট আউট করার জন্য একটি Listbox তৈরি করব এবং সিলেক্টেড মেনু প্রদর্শন করার জন্য একটি এন্ট্রি উইজেট। আপনি এন্ট্রি উইজেটের সাথে "Keyrelease" ইভেন্ট বাইন্ড করতে পারেন লিস্টে একটি নির্দিষ্ট কীওয়ার্ড সার্চ করতে। যদি আইটেমটি বিদ্যমান থাকে, তবে আমরা Listbox উইজেট আপডেট করব।

উদাহরণ

এই উদাহরণে, আমরা দুটি ফাংশন তৈরি করব যাতে:

  • একটি ফাংশন check(e) খুঁজে বের করবে যে ইনপুট করা আইটেমটি লিস্টে আছে কিনা। যদি আইটেমটি ইনপুট কীওয়ার্ডের সাথে মিলে যায়, তবে আমরা এন্ট্রি উইজেট আপডেট করব নির্দিষ্ট ডেটা ইনসার্ট করে।
  • একটি ফাংশন update(data) এন্ট্রি বক্স আপডেট করবে এন্ট্রি উইজেটে মান ইনসার্ট করে।
# প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন
from tkinter import *
from tkinter import ttk
# Tkinter ফ্রেম বা উইন্ডোর উদাহরণ তৈরি করুন
win = Tk()
# উইন্ডোর আকার সেট করুন
win.geometry("700x350")
# উইন্ডোর টাইটেল সেট করুন
win.title("Combobox- TutorialsPoint")
# লিস্টে সিলেক্টেড আইটেম দিয়ে এন্ট্রি উইজেট আপডেট করুন
def check(e):
    v = entry.get()
    if v == '':
        data = values
    else:
        data = []
        for item in values:
            if v.lower() in item.lower():
                data.append(item)
    update(data)
def update(data):
    # কমবোবক্স ক্লিয়ার করুন
    menu.delete(0, END)
    # কমবোবক্সে মান যোগ করুন
    for value in data:
        menu.insert(END, value)
# একটি লেবেল উইজেট যোগ করুন
label = Label(win, text="Demo Combobox Widget", font=('Helvetica 15 bold'), background="green3")
label.pack(padx=10, pady=25)
# একটি বটম লেবেল টেক্সট
text = Label(win, text="Select a Programming Language")
text.pack(padx=15, pady=20)
# একটি এন্ট্রি উইজেট তৈরি করুন
entry = Entry(win, width=35)
entry.pack()
entry.bind('', check)
# আইটেমের লিস্ট প্রদর্শন করার জন্য একটি Listbox উইজেট তৈরি করুন
menu = Listbox(win)
menu.pack()
# সকল মেনু আইটেমের একটি লিস্ট তৈরি করুন
values = ['Python', 'C++', 'Java', 'Ruby on Rails', 'Rust', 'GoLang', 'Objective-C', 'C# ', 'PHP', 'Swift', 'JavaScript']
# আমাদের কমবোবক্সে মান যোগ করুন
update(values)
# কমবোবক্স অনক্লিক বাইন্ডিং
win.mainloop()

আউটপুট

উপরের পাইথন স্ক্রিপ্ট চালালে একটি এন্ট্রি উইজেট এবং একটি ListBox সহ উইন্ডো প্রদর্শিত হবে। যখনই আমরা একটি কীওয়ার্ড ইনপুট করব, এটি লিস্টবক্স উইজেট আপডেট করবে ইনপুট কীওয়ার্ডের সাথে মিলে যাওয়া ফলাফল দেখাতে।

Tkinter-ে অটো-কমপ্লিশন সহ কমবো বক্স তৈরি করা

  1. টকিন্টার পাইথনে মাল্টিলাইন এন্ট্রি তৈরি করা

  2. টকিন্টার পাইথনে পাসওয়ার্ড এন্ট্রি ফিল্ড তৈরি করা

  3. Tkinter Entry উইজেটে ডিফল্ট টেক্সট সেট করার উপায়

  4. Tkinter-এ সিম্পল মেসেজ বক্স তৈরি করা