Tkinterでテキストボックスを作成しよう。
簡単にテキストボックスをPythonで作成できないだろうか?
テキストボックスは良く使いますよね。
これが簡単ならどんな良いでしょうか?
【結論】
tkinter.Buttonでボタンヴィジェットを出して
self.submitで送信やtkinter.Entryで入力フォームやtkinter.Textでフォームサイズを指定できます。
【理由】
tikinterはPythonでアプリケーションを作成するのに良く使われます。
tikinterを知らない方は
https://www.acrovision.jp/service/data/?p=616
ボタンはこう書きます。
button = tkinter.Button(self, text="ボタン")
第一引数にselfを指定してインスタンス化する処理をしていして、第二引数のtextで表示する文字列を指定してます。
【具体例】
def create_widgets(self):
button = tkinter.Button(self,text='実行',
command=self.submit)
button.pack()
def submit(self):
print('ボタンが押されました')
これはボタンを表示する処理です。
def create_widgets(self):でcommand=self.submitを参照します。
実行するとボタンが表示されます。
button.pack()でボタンを配置します。
def create_widgets(self):
button = tkinter.Button(self,text='実行',
command=self.submit)
button.pack()
self.text_box = tkinter.Entry(self,width=30)
text=self.text_box.pack()
def submit(self):
print('ボタンが押されました')
text =self.text_box.get()
print(f'入力された値:{text}')
これはテキストに文字を書いてボタンを押すと書いたのをアプリ内に保存する処理です。
tkinter.Entryはテキストボックス内に入力した情報をアプリに保存します。
width=30なので30ピクセルの広さです。
それをgetメソッドを使うと引数を取得できます。
実際にエディタで実行すると自分が入力したテキストが取得されてるのが分かります。
def create_widgets(self):
button = tkinter.Button(self,text='実行',
command=self.submit)
button.pack()
self.text = tkinter.Text(self,width=20,height=10)
self.text.pack()
def submit(self):
print('ボタンが押されました')
t=self.text.get(1.0,tkinter.END + '-1c')
print(t)
t=self.text.get(1.0,tkinter.END + '-1c')
先程の処理に改行できるようにしました。
tkinter.ENDは最後に追加する処理です。
t=self.text.get(1.0,tkinter.END + '-1c')の 1.0は最初の一文字からテキストを取得する事を意味します。
改行するには'-1c'が必要でこれは-1文字となり
次の行へ移動します。
【結論】
慣れるまでややこしい部分はあります。
ですが慣れてしまえばかなりいろんな処理が簡単に出来てWebアプリ作成に役に立ちます。
処理は他にもいろいろあるし検索すれば出るのでぜひいろいろ動かしてみましょう。
取材やお仕事紹介などはこちらからお気軽にご連絡下さい。
ysa7825@gmail.com