[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Pythonのプログラムを公開するだけのブログ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ダウンロード
from logging import root
from struct import pack
from os import system
from tkinter import ttk
import tkinter as tk
import random
def roll_dice():
'''
サイコロを振る
'''
count = int(cb_count.get()) # サイコロの数を取得
dice = int(cb_dice.get()) # サイコロの種類を取得
total = 0 # 合計値
history = [] # サイコロの出目
for no in range(count):
d = random.randint(1, dice)
total += d
history.append(d)
lbl_result['text'] = f'{total}\r\n{history}'
return
'''
ウインドウを作成
サイコロの個数選択と結果表示、サイコロを振るボタンを配置する
'''
root = tk.Tk()
root.title('ダイス')
root.geometry('240x320')
guidemsg = tk.Label(root,
text='サイコロの数と種類を選択してください')
count_nums = tuple(no for no in range(1, 11))
cb_count = ttk.Combobox(root,
width=6,
state='readonly',
values=count_nums)
cb_count.current(0)
lbl_d = tk.Label(root,
text='D')
dice_kind = tuple(no for no in range(2, 101))
cb_dice = ttk.Combobox(root,
width=6,
state='readonly',
values=dice_kind)
cb_dice.current(4)
lbl_result = tk.Label(root,
text='\r\n[ ]',
font=('system', 20))
btn = tk.Button(root,
text='サイコロを振る',
command=roll_dice)
# 各行の割合を指定
weit = [1,1,3,1]
for no in range(4):
root.rowconfigure(no, weight=weit[no])
# 各列の割合を指定
for no in range(3):
root.columnconfigure(no, weight=1)
# grid関数で配置
guidemsg.grid(column=0, row=0, columnspan=3)
cb_count.grid(column=0, row=1, sticky=tk.E)
lbl_d.grid(column=1, row=1)
cb_dice.grid(column=2, row=1, sticky=tk.W)
lbl_result.grid(column=0, row=2, columnspan=3)
btn.grid(column=0, row=3, columnspan=3)
root.mainloop()