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

Tkinterで大量のテキストを表示するときにスクロールの応答性を高速化するにはどうすればよいですか?


Tkinterを使用して、テキストファイルをレンダリングし、キャンバスにロードすることもできます。さらに、テキストファイルは、データの操作、データの取得、他の用途のためのデータのレンダリングなど、他の目的に使用できます。

10,000行を超えるクエリを含むtkinterキャンバスファイルのテキストを読み取る必要があると仮定します。テキストファイルをロードした後、キャンバスで特定のクエリを検索するには長い時間がかかります。このような大きなテキストファイルを処理するには、Yスクロールバーをファイルに追加することで、ファイルの応答性を高速化できます。 スクロールバーウィジェットを使用してサイドコントローラーウィジェットを作成します 。

まず、「open」メソッドを使用してファイルを開いて読み取り、次にtkinterフレームのY軸にスクロールバーを追加します。フレームにスクロールバーを追加するには、スクロールバーを使用してそのインスタンスを作成します。 ウィジェット。ウィンドウインスタンスをパラメータとして受け取り、Scrollbarの他のプロパティ(スクロールバーの側面、Axis)を定義します。

#Importing the tkinter library in the notebook

from tkinter import *
#Create an instance of the tkinter frame
win = Tk()
win.geometry(“700x300”)

#Create instance of Scrollbar object and define the property of the scrollbar
scrollbar = Scrollbar(win)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(win, height=300, width=100)
listbox.pack()

#Open and read the file using open method
file = open('file.txt', 'r').readlines()

for i in file:
   listbox.insert(END, i)

#Define the property of the widget
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)

#display the canvas until the END button is not pressed.
mainloop()

出力

上記のコードスニペットを実行すると、横にスクロールバーがあるキャンバスが開きます。

Tkinterで大量のテキストを表示するときにスクロールの応答性を高速化するにはどうすればよいですか?


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

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

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

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