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

tkinterで特定のテキストを削除できないようにするにはどうすればよいですか?


Tkinterでは、ユーザーは2つの基本的なテキスト入力ウィジェット(テキスト)を使用してテキストを入力できます。 ウィジェットとエントリ ウィジェット。 テキスト ウィジェットは通常、複数行のユーザー入力を受け入れるために使用されますが、エントリ ウィジェットの場合、ユーザーは1行のテキストのみを入力できます。

これらのウィジェットをカスタマイズし、組み込みのライブラリ関数とメソッドを使用して機能を追加できます。 エントリの入力を検証するには ウィジェットでは、 register()を使用できます 方法。このメソッドは、後の段階で関数を呼び出すために使用できる文字列を返します。

エントリの入力を検証するには ウィジェット、 config(** options)を使用します メソッドを実行し、検証を渡します およびvalidatecommand 引数。

  • 検証 −特定のエントリまたはテキストウィジェットの入力を検証するためにコールバック関数を呼び出す必要がある場合を示します。例: "key" ユーザーがキーを押すたびに指定する値です (キーボードから)コールバック関数が呼び出されます。 focus、focusin、focusout、none、all、などの他のオプションも使用できます。 など

  • validatecommand −コールバック関数によって返される値に依存する値を指定します。 validatecommand ='f'で値を指定するには 、コールバック関数によって返される値の方法と内容を示すさまざまなコールバック置換コードを使用できます。

エントリウィジェットの入力を検証するには、コールバック関数を登録し、コールバック関数で定義された条件をチェックする引数を渡してエントリウィジェットを構成する必要があります。

ここで、特定のテキストをユーザーが削除できないようにエントリウィジェットを検証する例を考えてみましょう。さらに、 startswith( "string")で文字列をチェックすることで、削除できないようにすることができます。 機能。

# Import required libraries
from tkinter import *

# Create an instance of tkinter window
win = Tk()
win.geometry("700x350")

# Define a function to make a text non-removable
def make_non_removable(text):
   return text.startswith("Enter your Email Id:")

# Create an entry widget
entry=Entry(win, bg="black", fg="white")
entry.pack(side="top", fill="x")

# Add a default text
entry.insert(END, "Enter your Email Id:")
validate_entry=(win.register(make_non_removable), '%P')
entry.config(validate='key', validatecommand=validate_entry)

win.mainloop()

出力

実行すると、ウィンドウにエントリウィジェットが表示され、デフォルトの削除できないテキスト「メールIDを入力してください:」が表示されます。

tkinterで特定のテキストを削除できないようにするにはどうすればよいですか?


  1. Tkinterテキストボックスの内容を削除する方法は?

    Tkinterは、ボタン、ダイアログボックス、ウィジェットなどを備えたフル機能のアプリケーションを作成するための多くの機能とモジュールを提供します。 テキストウィジェットを作成するには、基本的にコンストラクターであり、tkinterのウィンドウまたはフレームを取得するtkinterエントリーウィジェット関数を使用できます。さらに、組み込みのメソッド delete(first、last =None)を使用して、このテキストウィジェットのコンテンツを削除できます。 これは基本的にテキストボックス内の範囲を取ります。 この例では、基本的に指定されたテキストボックスからすべてのコンテンツを削除する

  2. tkinterのエントリにプレースホルダーを追加するにはどうすればよいですか?

    Tkinterは、ボタン、テキスト、エントリ、ダイアログ、およびアプリケーションの開発に役立つその他の属性などのウィジェットを追加する機能を提供します。ただし、tkinterはエントリーウィジェットにプレースホルダーを含めません。プレースホルダーは、ユーザーに通知するためにエントリウィジェットに表示されるダミーテキストです。 この記事では、 insert(default value、text)を使用して、エントリウィジェットにプレースホルダーを追加します。 プレースホルダーテキストとともに0などのデフォルト値をとる関数。 例 #Import tkinter library from tkin