βshortの自堕落Diary

web関係や、プログラミングなどを扱う予定です。プランなど立てていないので、不定期投稿になります。

tkinterその1

tkinterを使うその1

昨日公開しましたtkinterで画像を表示の続きとして、勉強したことのメモ(記録)として、このブログで残したいと思います。
なお、勉強の教材は、Pythonプログラミングパーフェクトマスター (Perfect Master)12歳からはじめる ゼロからの Pythonゲームプログラミング教室です。まだ、途中ですが、簡単に書かれているので、初めての方や、アプリケーションを作って、プログラミングをしているという実感を得たい人におすすめです。また、サンプルコードが公開されているので、この点もお勧めできます。

目次


各部品の作成

まず初めに

まず初めに、tkinterをインポートする必要があります。

import tkinter as tk

tkinterをインポートします。しかし、tkinterのままだと、使うときに面倒なので、名前をtkとしてインポートします。
as が「〜として」の役割です。

ウィンドウ作成

root = tk.Tk()
root.mainloop()

mainloopでウィンドウの状態を保ちます。

タイトルを付ける

root.title('タイトル')

ウィンドウの右上にタイトルが載ります。

キャンバスを貼り付ける

canvas = tk.Canvas(
            root,               # 親要素をメインウィンドウに設定
            width = 500,        # 幅を設定
            height = 300,       # 高さを設定
            relief = tk.RIDGE,    # 枠線を表示
            bd=2                # 枠線の幅を設定
        )
canvas.place(x=370, y=0) 

画像を貼り付けるときに、キャンバスを使います。
.placeでキャンバスを貼り付けます。
座標を指定します。

画像を貼り付ける

img1 = tk.PhotoImage(file = 'Image/20140729211926.gif')  # 表示するイメージを用意

canvas.create_image(                    # キャンバス上にイメージを配置
    0,                                  # x座標
    0,                                  # y座標
    image = img1,                       #配置するイメージオブジェクトを指定
    tag = "illust",                     #タグで引数を追加する。
    anchor = tk.NW                      # 配置の起点となる位置を左上隅に指定
)

1:tk.PhotoImage()で表示イメージを用意し、
2:キャンバス名.create_image()でキャンバス上にそのイメージを配置する
という流れです。
tagは、表示する画像(変数)に名前をつけます。
画像を画面から削除するとき役立ちます。
weblog2016it.hatenablog.com
上の記事にも書きましたが、macだと画像ファイルをGIFにする必要があります。(たぶん)

ラベルでテキストを配置

l = tk.Label(text = 'こんにちは')         #ラベルを生成
l.place(x = 0, y = 0)                    #ラベルの貼り付け

入力欄を配置

en = tk.Entry(width = 50, bd = 10)      #入力欄の生成
en.place(x = 0, y = 50)                #入力欄の貼り付け

ボタンを配置

bu = tk.Button(text = '送信')            #ボタンの生成
bu.place(x = 0, y = 100)              #ボタンの貼り付け

ボタンを押した時の処理

bu["command"] = ask_click               #ボタンが押されたらask_clickを実行

ボタン名["command"] = 実行したい関数名 でボタンが押された時の処理が実行されます。

ラベルの文字の変更

l["text"] = 'こんばんわ'

ラベル名["text"] = '文字列' でラベルの文字が変更できます。

今日はここまで

今回は、これらの部品の紹介で終わりにします。
作成したもの(編集に近いですが・・・)も、紹介していきたいです。
最後まで読んでくださってありがとうございます。
f:id:weblog2016it:20170906235154p:plain