「Python3」Tkinter Ver.8.6(Textの作成と設定方法)

Tkinter Python

Textとは?

Textは、複数行のテキスト(テキストエリア)を入力できるウィジェットになります。

Textの実装

<ソースコード>
from tkinter import *
from tkinter import ttk
from tkinter import font

# すべて表示
def button_push():
    print(text.get('1.0', 'end'))

#メインウィンドウ生成
root = Tk()
#ウィンドウのタイトル
root.title('Application')

#Frame生成
frame = ttk.Frame(
    root,
    padding = (20,10),
)

font =font.Font(
    family = "游ゴシック",
    size = 20,
    weight = "bold",
    underline = True,
)

#Text生成
text = Text(
    frame,
    font = font, #文字スタイル
    blockcursor = False, #入力カーソルの設定
    width = 30, #横幅
    height = 10, #縦幅
    wrap = "none", #折り返しなし指定
    undo = True, #「元に戻す / やり直し」有
    autoseparators = True, #「undo = True」時、セパレータごとにスタック
    borderwidth = 10, #境界線の線の太さ
    foreground = "#0000ff", #文字色
    background = "#aaaaaa", #背景色
    relief = "sunken", #形状
    highlightbackground = "pink", 
    highlightcolor = "red",
    highlightthickness = 5,
    insertbackground = "black",
    insertwidth = 6,
    selectforeground = "white",
    selectbackground = "blue",
    spacing1 = 10,
    spacing2 = 10,
    spacing3 = 10,
    state = "normal",
    maxundo = 5,
    tabs = 100,
    padx = 10,
    pady = 10,
)

#Scrollbar生成
scrollbar_x = ttk.Scrollbar(
    frame,
    orient = "horizontal",
    command = text.xview
)
text['xscrollcommand'] = scrollbar_x.set
scrollbar_y = ttk.Scrollbar(
    frame,
    orient = "vertical",
    command = text.yview
)
text['yscrollcommand'] = scrollbar_y.set

#Button生成
button = ttk.Button(
    frame,
    text = 'OK', #表示する文字
    width = str('OK'), #横幅
    padding = (30, 0), #隙間
    command = button_push #押されたら実行する関数
)

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にTextを表示
text.grid(row = 0, column = 0)
#Frame内にScrollbarを表示
scrollbar_x.grid(row = 1, column = 0, sticky = (W, E))
scrollbar_y.grid(row = 0, column = 1, sticky = (S, N))
#Frame内にButtonを表示
button.grid(row = 2, column = 0)
#ウィンドウ表示
root.mainloop()
<出力結果>

(テキストウィジェットにフォーカスが無い時)
Text 説明01
(テキストウィジェットにフォーカスがある時)
Text 説明02
(特定の文字列を選択中の場合)
Text 説明03
Buttonを押すと、Textに入力された文字列を全てコンソールに出力します。
Text内の文字列を取得する場合には、getメソッドを使用します。第1引数の行から第2引数の行まで取得します。”end”は最後の行という意味になります。

Testオプションを表にまとめます。

オプション 説明
background  背景色
borderwidth 境界線の線の太さ
font テキストに使用するフォント
foreground テキストに使用する色
relief 形状
height 高さ(表示する行数)
width 横幅
tabs タブの長さ
tabstyle 行のタブストップとその行のテキストのタブの関係を解釈する方法を指定
tabular, wordprocessor
wrap ワードラップモードの設定
none, char, word
state 状態
normal, disabled
blockcursor 点滅する挿入カーソルを文字サイズの長方形ブロックとして描画するかどうかを示すブール値を指定
false(デフォルト)の場合、挿入カーソルに細い垂直線を使用
cursor ウィジェットに使用されるマウスカーソルを指定
exportselection ウィジェットの選択をウィンドウマネージャの選択とリンクさせるかを設定
insertunfocussed ウィジェットにフォーカスがないときに挿入カーソルを表示する方法を指定
selectbackground 選択した文字列を表示するときに使用する背景色を指定
selectforeground 選択した文字列を表示するときに使用する文字色を指定
autoseparators 「元に戻す」スタックにセパレーターが自動的に挿入されるかどうかを示すブール値を指定
undo 「元に戻す」をアクティブにするかをブール値で指定
maxundo 元に戻すスタック上の複合元に戻す操作の最大数を指定
spacing1 テキストブロックの最初の行の上に使用する間隔
spacing2 テキストブロックの行間で使用する間隔
spacing3 テキストブロック内のテキストの最後の行の後に使用する間隔
padx 左右のパディング
pady 上下のパディング
highlightbackground ウィジェットに入力フォーカスがないときにhighlight領域に表示する色を指定
highlightcolor ウィジェットに入力フォーカスがあるときにhighlight領域に表示する色を指定
highlightthickness highlight領域の太さを整数で指定
inactiveselectbackground ウィンドウにフォーカスがない場合に、選択に使用する色を指定
insertbackground 挿入カーソルで覆われた領域の背景として使用する色を指定
insertofftime 挿入カーソルの点滅サイクルが「オフ」の状態である、ミリ秒数を非負の整数値で指定
insertontime 挿入カーソルの点滅サイクルが「オン」の状態である、ミリ秒数を非負の整数値で指定
insertwidth 挿入カーソルの太さを指定
setgrid このウィジェットがトップレベルウィンドウのサイズ変更グリッドを制御するかどうかを決定するブール値を指定
takefocus キーボードトラバース中にウィンドウがフォーカスを受け入れるかどうかを決定
xscrollcommand 横スクロールバーの設定
yscrollcommand 縦スクロールバーの設定

reliefオプションは、以下の値を指定することができます。

reliefオプション 説明
flat 平坦
raised 出っ張り
sunken 引っ込み
groove
ridge 土手

コメント

タイトルとURLをコピーしました