表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
Pythonに「なろう系タイトルジェネレータ」を移植し、さらにいろんなツールを開発してみる物語  作者: 超プリン体
第一章 なろう系タイトルジェネレータを移植する
2/20

第二話 ボタンを押した時に何か反応させてみる ~戻れない映画のようなポーズボタン

フレ登録、ブクマ、ポイント、ご質問などお気軽にどうぞ。


なおコードの左に全角スペースが2個入っている所が、実行時にエラーになる場合は、Tabに変更して実行してください。

 みなさんこんにちは。なろう系タイトルジェネレータ開発の第二話です。


 第一話では、Pythonからウインドウを表示させ、そこにテキストやボタンを表示させる所まで、コーディングしました。第二話では、ボタンを押した時に、何か反応させてみることにします。


 ボタンは2つあり、ひとつは「自動作成」ボタン、もうひとつは「終了」ボタンですね。順番的には、簡単な方から説明するのがいいんですけど、ここでは左から順に、「自動作成」ボタンから作ってみます。


 やり方を、簡単に説明すると、①自動作成ボタンが押された時に、実行される内容を関数として定義する。②その関数を、自動作成ボタンに関連づけてやる。となります。


 これをコーディングすると、こうなります。


def display_title():

  txt_title["text"]="自動作成ボタンが押されました"

btn_create["command"]=display_title


 簡単に説明すると、「def 」というのが関数の定義です。ここで定義している関数の名前は、display_title()になります。その次の行が、この関数で実行される内容です。txt_titleというラベルオブジェクトに、「自動作成ボタンが押されました」と表示するだけの処理ですね。また、その次の行が、「自動作成」ボタンと関数display_title()を紐づけるための設定です。これらの3行を追加することで、「自動作成」ボタンが押されたら、ラベルの文字が「自動作成ボタンが押されました」に切り替わるようになります。


 ここで注意しないといけないのは、実行させたい関数の定義は、ボタンと関数の紐づけよりも上に書かれていないといけない点です。上の例でいうと、3行目の「btn_create["command"]=display_title」が、関数の定義「def display_title():」より上にすると、うまく動かなくなります。


 では次に、「終了」ボタンが押された時の動作をコーディングします。終了させるには、tkinterモジュールの、destroy()という関数を使います。


def destroy_tk():

  tk.destroy()

btn_quit["command"]=destroy_tk


 上の2つの変更で、コード全体がどうなったかを最後に示しておきます。



(ここから)

# -*- coding: utf-8 -*-

import tkinter

#ウインドウ設定

tk=tkinter.Tk()

tk.title(u"なろう系タイトルジェネレータ")

tk.minsize(480,200)

#ウインドウ表示

win=tkinter.Canvas(bg="black",width=480,height=200)

win.place(x=0,y=0)

btn_quit = tkinter.Button(tk, text='終了')

btn_quit.place(x=130, y=80)

btn_create = tkinter.Button(tk, text='自動作成')

btn_create.place(x=50, y=80)

txt_title=tkinter.Label(text=u"ここにランダムで作成したタイトルが表示されます。")

txt_title.place(x=0,y=0)


def display_title():

  txt_title["text"]="自動作成ボタンが押されました"

btn_create["command"]=display_title


def destroy_tk():

  tk.destroy()

btn_quit["command"]=destroy_tk



tk.mainloop()

(ここまで)


挿絵(By みてみん)


今回はここまでです。次回はラベルの文字を、ランダムに切り替える処理を追加する予定です。



では次回またお会いしましょう。



評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ