第三話 テキストをランダムに切り替える ~庭師の妹、美少女ハムスター
フレ登録、ブクマ、ポイント、ご質問などお気軽にどうぞ。
なおコードの左に全角スペースが2個入っている所が、実行時にエラーになる場合は、Tabに変更して実行してください。
みなさんこんにちは。なろう系タイトルジェネレータ開発の第三話です。
第二話では、「自動作成」ボタン、「終了」ボタンを押した時の動作を定義してみました。しかし、「自動作成」ボタンを押した時に、「自動作成ボタンが押されました」としか表示されないので、あまり楽しくないですね。そこで今回は、自動作成ボタンが押された時に、表示する文字を切り替えてみることにします。
切り替える文字ですが、今回は説明を簡単にするために、次の3つだけにします。
(1)「悪役令嬢転生したら本気だす」
(2)「本好きのスライム無職だった件」
(3)「ゼロから始めるスライム食堂」
さてPythonで乱数を扱うためには、randomモジュールを使います。これを使うためには、プログラムの最初の方で、「import random」と宣言する必要があります。このモジュールを使って、0から2までの数字を乱数で作って、その数字に従って、上の(1)から(3)のタイトルのうちの一つを選び、ラベルに表示させてあげると、完成ですね。
そのコードは、次のようになります。
その1、randomモジュールを定義する部分。
import random
その2、本のタイトルの配列を設定する部分。
list_title=["悪役令嬢転生したら本気だす","本好きのスライムだった件","ゼロから始めるスライム食堂"]
その3、本のタイトルを3つからランダムに選んで、ラベルに表示する部分
def display_title():
# txt_title["text"]="自動作成ボタンが押されました"
n=random.randint(0,2)
txt_title["text"]=list_title[n]
その3では、もともとあった関数の中身を変えることで、ラベルに表示させる文字が切り替わるようにしました。「自動作成ボタンが押されました」の行の先頭に、「#」と付けてありますが、これは、コメント行(実行してはいけない行)という意味です。
その1からその3の変更で、コード全体がどうなったかを示しておきます。
(ここから)
# -*- coding: utf-8 -*-
import tkinter
import random
list_title=["悪役令嬢転生したら本気だす","本好きのスライムだった件","ゼロから始めるスライム食堂"]
#ウインドウ設定
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"]="自動作成ボタンが押されました"
n=random.randint(0,2)
txt_title["text"]=list_title[n]
btn_create["command"]=display_title
def destroy_tk():
tk.destroy()
btn_quit["command"]=destroy_tk
tk.mainloop()
(ここまで)
どうですか? 実行できましたか? 実行ボタンを何回か押していると、表示が切り替わるときと、切り替わらないときがあることに、気づいたでしょうか?
これはたまたま、3つあるうちの同じタイトルが連続で選ばれた時に、起こる現象です。次回はこの、たまたま発生する現象を、発生しないようにする改善をしたいと思います。
では次回またお会いしましょう。




