Tkinterでボタンとラベルを利用する (Python ボタンとラベルの配置)
本日の課題と目標
Tkinterでボタンとラベルを利用する
はじめに
以前Kivyで作ったのと同じものをTkinterで作成します。テキストボックスに続きボタンとラベルを作っていきます。
プログラムのコード
import sys import tkinter # ウィンドウのタイトル名、幅と高さを設定 root = tkinter.Tk() root.title(u"test") root.geometry("300x150") # ボタンが押されるとここが呼び出される def EntryValue(event): # ここで,valueにEntryの中身が入る value = EditBox.get() + " " # ラベル label = tkinter.Label(text=value, font=("",14)) label.place(x=50, y=20, width=370) # エントリー(テキストボックス) EditBox = tkinter.Entry(width=20, font=("",14)) EditBox.insert(tkinter.END,"てすと") EditBox.place(x=50, y=60) # ボタン Button = tkinter.Button(text=u'O K', width=8, font=("",14)) # 左クリック(<Button-1>)されると,EntryValue関数を呼び出す Button.bind("<Button-1>",EntryValue) Button.place(x=120, y=100) root.mainloop()
フォントの大きさと表示位置を微調整しました。
解説
プログラムの流れ
ボタンを押した時に入力文字を取得してラベルに表示させるプログラムです。
苦労したところは、ラベルの表示を中央揃えにすることとボタンを押したときにラベルの元ある文字が残ってしまうところです。
「label.place(x=50, y=20, width=370)」
width(幅)を設定することで中央揃えになりました。
「value = EditBox.get() + " "」
テキストボックスは文字を一度削除さすことができるのですが、ラベルの文字を削除する方法が調べてもわかりませんでした。
ボタンを押したときに取得する入力文字の後ろに空白を付けることで、ラベルに前回の文字が残ってしまう問題をごまかしました。
次回はTkinterでスライダーを使ってカウントダウンを作ってみたいと思います。
参考サイト
保存ファイル
lesson39.py
文責:Luke