Ccmmutty logo
Commutty IT
0 pv5 min read

自分の欲しいを全部乗せ!tkinterでメモ帳作り「2.2_テキスト入力エリアにスクロールバーを設置する」

https://cdn.magicode.io/media/notebox/d0030e96-d43f-4207-b2a5-6a450ff856f6.jpeg

はじめに

このシリーズでは、tkinterを使って自分が欲しいと思う機能を全部乗せた 「自分だけのメモ帳」 を作成していきます。
一連の目次については、この記事の一番下に記載しています。
 
このページでは、
tkinterでテキスト入力エリアにスクロールバーを表示する部分を記載しています。

今回作成したコード

追加した部分

###############
# スクロールバーの設定
## テキストエリアウィジェットに紐付ける形でスクロールバーを作成する
Scroll = tkinter.Scrollbar(TextArea)
## 右側に配置する。テキストエリア内で空きスペースが出来ないように、縦横に拡げて配置する
Scroll.pack(side=tkinter.RIGHT,  fill=tkinter.BOTH)
## スクロールバーのドラッグで縦軸方向にスクロールできるようにする
Scroll.config(command=TextArea.yview)
## テキストエリアウィジェットにスクロールバーをセットする
TextArea.config(yscrollcommand=Scroll.set)

メモ帳コード全体

# モジュールインポート # Pythonのモジュールとimportとfrom入門 - Qiita https://qiita.com/niwaka_dev/items/6e3d9ff6d797243c77c3
## tkinter モジュールを Tk というエイリアスでインポートする 標準ライブラリ
import tkinter

# ウィンドウの基本設定
root = tkinter.Tk()
root.title("Untitled.txt") # タイトルバーに表示される文字列を指定する

x, y=644,188 # 最初のウィンドウサイズを指定する
root.geometry('%dx%d' % (x, y))

# 作成したウィンドウのグリッドを行列指定
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)

## テキスト入力エリア TextArea を作成
TextArea = tkinter.Text(root, font="メイリオ 8",wrap=tkinter.CHAR,undo=True,maxundo=0)
# wrap=tkinter.CHAR 文字単位で折り返す
# undo=True,maxundo=0 undoを有効にして、何回でもundoできる(0以下で無限)

###############
# スクロールバーの設定
## テキストエリアウィジェットに紐付ける形でスクロールバーを作成する
Scroll = tkinter.Scrollbar(TextArea)
## 右側に配置する。テキストエリア内で空きスペースが出来ないように、縦横に拡げて配置する
Scroll.pack(side=tkinter.RIGHT,  fill=tkinter.BOTH)
## スクロールバーのドラッグで縦軸方向にスクロールできるようにする
Scroll.config(command=TextArea.yview)
## テキストエリアウィジェットにスクロールバーをセットする
TextArea.config(yscrollcommand=Scroll.set)

############
# gridの設定
TextArea.grid(row=0,column=0,sticky=tkinter.NSEW)

#################
# メインループ
root.mainloop()

実行結果確認

おわりに。あたりまえの大変さ

今回はメモ帳のスクロールバーを追加しました。
これで長文も作成できますね!
 
自分でメモ帳を作り始めると、普段当たり前に付いていると思っている機能でも、こうやって1つずつ実装されているんだなーということが実感できました。
Tkinterは当たり前を割と簡単に実装できますが、色々個人開発している方達は本当にすごいなって思います。
ひとつひとつのツールに感謝しながら、使わせていただこうと思います!
 

Discussion

コメントにはログインが必要です。