[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Pythonのプログラムを公開するだけのブログ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
import tkinter as tk
import random
# 問題
mondai = []
# 出題番号
number = 0
# 状態
state = 0
# ガイド文字列
guide_message = '開始ボタンを押すとスタートします'
def func_clear():
'''
消去処理
'''
# 表示消去
global lbl
lbl['text'] = ''
# 次の出題の表示設定
global number
number += 1
root.after(500, func_interval)
return
def show_addend():
'''
問題の表示
'''
global lbl
global mondai
global number
lbl['text'] = str(mondai[number])
global root
root.after(500, func_clear)
return
def func_interval():
'''
定期処理
'''
global number
global mondai
if number < len(mondai):
# 出題番号の値表示
show_addend()
return
# 定期処理開始
global root
global btnStart
btnStart['state'] = tk.NORMAL
btnStart['text'] = '答え'
lblStart.config(state=tk.NORMAL)
return
def satrt_anzan():
'''
ハンドラ関数
'''
global btnStart
global mondai
global number
global state
if state == 0:
state = 1
# 押されたボタンの無効化
btnStart.config(state=tk.DISABLED)
lblStart.config(state=tk.DISABLED)
# 変数初期化
number = 0
# 問題作成
mondai = []
for no in range(10):
mondai.append(random.randint(1, 9))
# 最初の値表示
show_addend()
return
state = 0
# 最後まで表示した
lbl['text'] = f'答え={sum(mondai)}'
btnStart['text'] = '開始'
number = 0
return
'''
メイン処理
'''
# トップレベルウインドウの生成
root = tk.Tk()
root.title('Flash Anzan')
root.geometry('320x240')
#Labelウィジェットの生成
lbl = tk.Label(root, text='', font=('System', 40))
lblStart = tk.Label(root, text=guide_message, font=('System', 20))
# Buttonウィジェットの生成と配置
btnStart = tk.Button(root, text='開始', font=('System', 20), command=satrt_anzan)
# 各列の割合を指定
root.columnconfigure(0, weight=1)
# 各行の割合を指定
root.rowconfigure(0, weight=3)
root.rowconfigure(1, weight=1)
root.rowconfigure(2, weight=1)
# grid関数で配置
lbl.grid(column=0, row=0, columnspan=1)
btnStart.grid(column=0, row=1, columnspan=1)
lblStart.grid(column=0, row=2, columnspan=1)
# トップレベルウインドウの表示
root.mainloop()