Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

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」に変更して実行

f:id:Start_python:20191119081744j:plain

日本語での入力も問題なく出来ました。少しテキストボックスの長さと位置が気になります。

 

解説

プログラムの流れ

テキストボックスのあるウィンドウを表示するだけのプログラムです。

ウィンドウのタイトル名とサイズ、テキストボックスの幅と位置、テキストボックスに最初から入力しておく文字を設定しています。

見事に日本語に対応しており、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()

f:id:Start_python:20191119083128g:plain



 次回はTkinterでボタンとラベルを使っていきます。

 

 

参考サイト

qiita.com

 

 

保存ファイル

lesson38.py

 

 

文責:Luke