※このページではアフィリエイト広告を利用しています

【Python応用】Tkinterでアプリ作成-ScrolledTextの使用例まとめ-

Python

ここではTkinterにおける「ScrolledText」の使用例をまとめています。

この記事の対象

  • ScrolledTextを使用したい方
  • ScrolledTextの使用例を知りたい方
  • これからTkinterでアプリ作成を始める方
スポンサーリンク
スポンサーリンク

ScrolledTextとは?

「ScrolledText」はスクロールできるテキスト入力のウィジェットになります。

アプリのサイズを限定したい場合で、文字列が入りきらない場合に使用します。

基本的な型

scrolledtext.ScrolledText(option)

「ScrolledText」はサイズや色などもオプションで指定できる特徴があります。良く使用するオプションは以下になります。

Option内容
bgテキストボックスの背景色指定
bd枠線サイズの指定
blockcursor点滅カーソルの見た目指定。True,Falseを指定
borderwidth境界線の指定。数値を指定
cursorマウスカーソルの指定。種類はこちら
endline最終行の指定。数値を指定
exportselection真偽値を取る。
fg入力文字列の色指定
fontテキストのフォントタイプ・サイズの指定
justify入力位置指定。デフォルトはleft。center、rightも選択可能。
insertontime / insertofftime入力画面で点滅するカーソルが消えてから表示されるまでの時間(ms)を指定。offはその逆時間。
reliefボーダーデザインの指定。tk.RAISED、tk.SUNKEN、 tk.FLAT、 tk.RIDGE、 tk.GROOVE、 tk.SOLIDから選択可能。
state文字入力のnormal(編集有効)、disable(編集無効)、readonly(読取のみ)を指定
wrap折返し方法の指定。tk.CHAR(文字単位)、tk.WORD(単語単位)、tk.NONE(折返ししない)から選択可能。

ScrolledTextの作成

from tkinter import *
import tkinter as tk
from tkinter import scrolledtext
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---scrolledtext作成
test = scrolledtext.ScrolledText(padx=20, pady=25, cursor='arrow', wrap=tk.WORD, font=('Helvetica', '12'))
text = "これはテストです。"
test.insert(tk.END,text)
test.pack(fill=tk.BOTH, expand=1)
root.mainloop()

「scrolledtext」はimportをする必要があります。画面を作成したら「scrolledtext.ScrolledText()」でボックスを作成するだけです。文字入力はinsertで可能です。

結果

ScrolledTextへの複数行の文字挿入

from tkinter import *
import tkinter as tk
from tkinter import scrolledtext
import socket
import subprocess
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---entry作成
test = scrolledtext.ScrolledText(padx=20, pady=25, cursor='arrow', wrap=tk.WORD, font=('Helvetica', '12'))
data = subprocess.check_output(['ipconfig','/all']).decode('cp932').split('\n')
for item in data:
    text = item.split('\r')[:-1]
    test.insert(tk.END,'\n')
    test.insert(tk.END,text)
    test.pack(fill=tk.BOTH, expand=1)
root.mainloop()

複数行を挿入する例としてIP情報を取得して書き込むものになっています。複数行を書き込む場合、for構文でその都度、改行してinsertで書き込むのが手っ取り早いです。その際、insert位置は「tk.END」にする必要があります。

結果

ScrolledTextへのテキストファイルの出力

import tkinter as tk
from tkinter.scrolledtext import ScrolledText

def display_text():
    with open("files.txt", "r") as file:
        text_output = file.read()
        text_area.delete("1.0", tk.END)
        text_area.insert(tk.END, text_output)

root = tk.Tk()
root.title("Viewer")

text_area = ScrolledText(root, width=80, height=20)
text_area.pack()

load_button = tk.Button(root, text="Load Text", command=display_text)
load_button.pack()

root.mainloop()

任意のテキストファイルを読み込んで、ScrolledTextに出力するコードになっています。

結果

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