Python-tk-text
Python-Tkinterテキスト
テキストウィジェットは、複数行のテキストを編集し、色やフォントの変更など、表示方法をフォーマットできる高度な機能を提供します。
タブやマークなどのエレガントな構造を使用して、テキストの特定のセクションを見つけ、それらの領域に変更を適用することもできます。 さらに、このウィジェットはプレーンテキストとフォーマットされたテキストの両方を処理するように設計されているため、テキストにウィンドウや画像を埋め込むことができます。
構文
このウィジェットを作成するための簡単な構文は次のとおりです-
パラメーター
- master -これは親ウィンドウを表します。
- オプション-これは、このウィジェットで最も一般的に使用されるオプションのリストです。 これらのオプションは、カンマで区切られたキーと値のペアとして使用できます。
Sr.No. | Option & Description |
---|---|
1 |
bg テキストウィジェットのデフォルトの背景色。 |
2 |
bd テキストウィジェットの周囲の境界線の幅。 デフォルトは2ピクセルです。 |
3 |
cursor マウスがテキストウィジェット上にあるときに表示されるカーソル。 |
4 |
exportselection 通常、テキストウィジェット内で選択されたテキストは、ウィンドウマネージャーで選択されるようにエクスポートされます。 この動作が望ましくない場合は、exportselection = 0を設定します。 |
5 |
font ウィジェットに挿入されるテキストのデフォルトのフォント。 |
6 |
fg ウィジェット内のテキスト(およびビットマップ)に使用される色。 タグ付けされた領域の色を変更できます。このオプションはデフォルトです。 |
7 |
height 現在のフォントサイズに従って測定された、ウィジェットの高さ(ピクセルではなく!)。 |
8 |
highlightbackground テキストウィジェットにフォーカスがない場合のフォーカスの色。 |
9 |
highlightcolor テキストウィジェットにフォーカスがあるときのフォーカスハイライトの色。 |
10 |
highlightthickness フォーカスハイライトの厚さ。 デフォルトは1です。 highlightthickness = 0を設定して、フォーカスハイライトの表示を抑制します。 |
11 |
insertbackground 挿入カーソルの色。 デフォルトは黒です。 |
12 |
insertborderwidth 挿入カーソルの周囲の3D境界線のサイズ。 デフォルトは0です。 |
13 |
insertofftime 点滅サイクル中に挿入カーソルがオフになるミリ秒数。 点滅を抑制するには、このオプションをゼロに設定します。 デフォルトは300です。 |
14 |
insertontime 点滅サイクル中に挿入カーソルがオンになるミリ秒数。 デフォルトは600です。 |
15 |
insertwidth 挿入カーソルの幅(その高さはその行の最も高いアイテムによって決まります)。 デフォルトは2ピクセルです。 |
16 |
padx テキスト領域の左右に追加される内部パディングのサイズ。 デフォルトは1ピクセルです。 |
17 |
pady テキスト領域の上下に追加される内部パディングのサイズ。 デフォルトは1ピクセルです。 |
18 |
relief テキストウィジェットの3D外観。 デフォルトは、relief = SUNKENです。 |
19 |
selectbackground 選択したテキストの表示に使用する背景色。 |
20 |
selectborderwidth 選択したテキストの周囲に使用する境界線の幅。 |
21 |
spacing1 このオプションは、テキストの各行の上に追加する垂直スペースの量を指定します。 行が折り返される場合、このスペースは、ディスプレイ上で占める最初の行の前にのみ追加されます。 デフォルトは0です。 |
22 |
spacing2 このオプションは、論理行が折り返されるときに表示されるテキスト行の間に追加する追加の垂直方向のスペースを指定します。 デフォルトは0です。 |
23 |
spacing3 このオプションは、テキストの各行の下に追加される垂直スペースの量を指定します。 行が折り返されると、このスペースは、ディスプレイ上の最後の行の後にのみ追加されます。 デフォルトは0です。 |
24 |
state 通常、テキストウィジェットはキーボードイベントとマウスイベントに応答します。この動作を得るには、state = NORMALを設定します。 state = DISABLEDを設定すると、テキストウィジェットは応答せず、その内容をプログラムで変更することもできなくなります。 |
25 |
tabs このオプションは、タブ文字によるテキストの配置方法を制御します。 |
26 |
width 現在のフォントサイズに従って測定された、ウィジェット(ピクセルではなく!)の幅。 |
27 |
wrap このオプションは、幅が広すぎる行の表示を制御します。 wrap = WORDを設定すると、最後の単語の後に収まる行が改行されます。 デフォルトの動作wrap = CHARでは、長すぎる行はすべての文字で途切れます。 |
28 |
xscrollcommand テキストウィジェットを水平スクロール可能にするには、このオプションを水平スクロールバーのset()メソッドに設定します。 |
29 |
yscrollcommand テキストウィジェットを垂直にスクロール可能にするには、このオプションを垂直スクロールバーのset()メソッドに設定します。 |
方法
テキストオブジェクトにはこれらのメソッドがあります-
Sr.No. | Methods & Description |
---|---|
1 |
delete(startindex [,endindex]) このメソッドは、特定の文字またはテキストの範囲を削除します。 |
2 |
get(startindex [,endindex]) このメソッドは、特定の文字またはテキストの範囲を返します。 |
3 |
index(index) 指定されたインデックスに基づいてインデックスの絶対値を返します。 |
4 |
insert(index [,string]…) このメソッドは、指定されたインデックス位置に文字列を挿入します。 |
5 |
see(index) インデックス位置にあるテキストが表示されている場合、このメソッドはtrueを返します。 |
テキストウィジェットは、マーク、タブ、およびインデックスの3つの異なるヘルパー構造をサポートします-
マークは、特定のテキスト内の2文字間の位置をブックマークするために使用されます。 私たちはマークを処理するときに次の方法を利用できます-
Sr.No. | Methods & Description |
---|---|
1 |
index(mark) 特定のマークの行と列の位置を返します。 |
2 |
mark_gravity(mark [,gravity]) 指定されたマークの重力を返します。 2番目の引数が指定されると、指定されたマークに重力が設定されます。 |
3 |
mark_names() テキストウィジェットからすべてのマークを返します。 |
4 |
mark_set(mark, index) 指定されたマークに新しい位置を通知します。 |
5 |
mark_unset(mark) テキストウィジェットから指定されたマークを削除します。 |
タグを使用して名前をテキストの領域に関連付けると、特定のテキスト領域の表示設定を簡単に変更できます。 タグは、イベントコールバックを特定のテキスト範囲にバインドするためにも使用されます。
以下は、タブを処理するための利用可能な方法です-
Sr.No. | Methods & Description |
---|---|
1 |
tag_add(tagname, startindex[,endindex] …) このメソッドは、startindexで定義された位置、またはstartindexとendindexの位置で区切られた範囲のいずれかにタグを付けます。 |
2 |
tag_config このメソッドを使用して、justify(中央、左、または右)、tabs(このプロパティはTextウィジェットのタブのプロパティと同じ機能を持ちます)、underline(タグ付きテキストに下線を引くために使用)を含むタグプロパティを構成できます。 |
3 |
tag_delete(tagname) このメソッドは、指定されたタグを削除および削除するために使用されます。 |
4 |
tag_remove(tagname [,startindex[.endindex]] …) このメソッドを適用した後、実際のタグ定義を削除せずに、指定されたタグが指定された領域から削除されます。 |
例
自分で次の例を試してください-
上記のコードが実行されると、次の結果が生成されます-