Start_python’s diary

ふたり暮らし

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

Tkinterでボタンとラベルを利用する (Python ボタンとラベルの配置)

本日の課題と目標

Tkinterでボタンとラベルを利用する

 

はじめに

以前Kivyで作ったのと同じものをTkinterで作成します。テキストボックスに続きボタンとラベルを作っていきます。

 

f:id:Start_python:20191122195631g:plain

プログラムのコード

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でスライダーを使ってカウントダウンを作ってみたいと思います。

 

 

参考サイト

qiita.com

www.shido.info

 

 

保存ファイル

lesson39.py

 

 

文責:Luke