Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterでオートコンプリート付きのコンボボックスを作成するにはどうすればよいですか?


Tkinter Comboboxウィジェットは、アプリケーションにドロップダウンメニューを実装するための便利なウィジェットの1つです。その上にあるエントリウィジェットとリストボックスウィジェットの組み合わせを使用します。 [入力]フィールドにアイテム名(メニューリストに存在する場合)を入力して、メニューアイテムを選択できます。ただし、オートコンプリートを使用してメニュー項目を選択する必要がある場合があります。

オートコンプリートコンボボックスを作成するために、最初にリストボックスを作成してメニューを一覧表示し、エントリウィジェットを作成して選択したメニューを表示します。 「Keyrelease」イベントをエントリウィジェットにバインドして、リスト内の特定のキーワードを検索できます。アイテムが存在する場合は、リストボックスウィジェットを更新します。

この例では、次のような2つの関数を作成します。

  • 関数check(e) 入力したアイテムがリストに存在するかどうかを確認します。アイテムが入力されたキーワードと一致する場合、特定のデータを挿入してエントリウィジェットを更新します。
  • 関数update(data) エントリウィジェットに値を挿入して、エントリボックスを更新します。
# Import the Required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win= Tk()

# Set the size of the window
win.geometry("700x350")

# Set the title of the window
win.title("Combobox- TutorialsPoint")

# Update the Entry widget with the selected item in list
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):
   # Clear the Combobox
   menu.delete(0, END)
   # Add values to the combobox
   for value in data:
      menu.insert(END,value)


# Add a Label widget
label= Label(win, text= "Demo Combobox Widget", font= ('Helvetica 15
bold'), background= "green3")
label.pack(padx= 10, pady= 25)

# Add a Bottom Label
text= Label(win, text="Select a Programming Language")
text.pack(padx= 15,pady= 20)

# Create an Entry widget
entry= Entry(win, width= 35)
entry.pack()
entry.bind('<KeyRelease>',check)

# Create a Listbox widget to display the list of items
menu= Listbox(win)
menu.pack()

# Create a list of all the menu items
values= ['Python', 'C++', 'Java','Ruby on Rails', 'Rust',
'GoLang','Objective-C', 'C# ', 'PHP', 'Swift', 'JavaScript']

# Add values to our combobox
update(values)

# Binding the combobox onclick

win.mainloop()

出力

上記のPythonスクリプトを実行すると、エントリウィジェットとリストボックスを含むウィンドウが表示されます。キーワードを入力すると、リストボックスウィジェットが更新され、入力したキーワードと一致する結果が表示されます。

Tkinterでオートコンプリート付きのコンボボックスを作成するにはどうすればよいですか?


  1. Tkinter Entryウィジェットのデフォルトテキストを設定するにはどうすればよいですか?

    Tkinter Entryウィジェットは、ユーザー入力から取得した1行のテキストを印刷および表示するために使用されます。ログインフォーム、サインアップフォーム、その他のユーザーインタラクションフォームの作成など、多くのアプリケーションで使用されます。 insert()を使用して、エントリウィジェットのデフォルトのテキストを設定できます。 デフォルトのテキストを引数として渡すことで機能します。 例 この例では、デフォルトのテキストを持つエントリウィジェットを作成しました。 #Import the tkinter library from tkinter import * #Create

  2. Tkinterで簡単なメッセージボックスを作成するにはどうすればよいですか?

    Tkinterは、アプリケーションを作成および開発するための人気のあるPythonライブラリです。アプリケーションに複数の機能を追加するために使用できるさまざまなメソッドと関数があります。 Tkinterを使用すると、ダイアログボックスやその他のウィジェットを作成できます。 この記事では、オプションを選択するための情報をポップアップして表示する簡単なメッセージボックスを作成する方法を説明します。 例 #Import the required libraries from tkinter import * from tkinter import messagebox #Create an in