Tkinterでテキストボックスを利用する (Python テキストボックスの配置)
本日の課題と目標
Tkinterでテキストボックスを利用する
日本語入力が出来るかテストする
はじめに
今回から新たにTkinterを勉強していきます。ラベルとボタンは後回しにして、テキストボックスを作っていきます。
プログラムのコード(エラー)
import sys import Tkinter # ウィンドウのタイトル名、幅と高さを設定 root = Tkinter.Tk() root.title(u"test") root.geometry("300x150") # エントリー(テキストボックス) EditBox = Tkinter.Entry(width=200) EditBox.insert(Tkinter.END,"てすと") EditBox.place(x=50, y=100) root.mainloop()
エラー
ModuleNotFoundError: No module named 'Tkinter'
Tkinterがインポートできません。Tkinterモジュールは標準で入ってるみたいなのでインストールの必要はないはず。Linuxの場合は「pip install python3-tk」でインストールできるようですが windowsなのでこれではインストールできませんでした。
解決しました!pythonのバージョンが2のときが「import Tkinter」でした。pythonのバージョンが3のときは頭文字が小文字で「import tkinter」になります。
ほかの「Tkinter」もすべて「tkinter」に変更して実行
日本語での入力も問題なく出来ました。少しテキストボックスの長さと位置が気になります。
解説
プログラムの流れ
テキストボックスのあるウィンドウを表示するだけのプログラムです。
ウィンドウのタイトル名とサイズ、テキストボックスの幅と位置、テキストボックスに最初から入力しておく文字を設定しています。
見事に日本語に対応しており、Kivyの時とは違い問題なく日本語入力できました。
注意点として、ウィンドウのサイズを決めるgeometryメソッドで (幅x高さ) の「✖️」は「掛ける」ではなく「小文字のエックス」です。
「EditBox = Tkinter.Entry(width=200)」
widthは長さではなく入力文字数(半角)のようです。
「EditBox.place(x=50, y=100)」
座標(0,0)は画面の左上になります。また座標(x,y)はテキストボックスの左上の位置です。
プログラムのコード(修正後)
import sys import tkinter # ウィンドウのタイトル名、幅と高さを設定 root = tkinter.Tk() root.title(u"test") root.geometry("300x150") # エントリー(テキストボックス) EditBox = tkinter.Entry(width=30) EditBox.insert(tkinter.END,"てすと") EditBox.place(x=60, y=50) root.mainloop()
次回はTkinterでボタンとラベルを使っていきます。
参考サイト
保存ファイル
lesson38.py
文責:Luke