8月30日(タイマー、画像、配置、文字の装飾)

ページ名:8月30日

タイマーアプリ

import tkinter as tk
from tkinter import font
 

root = tk.Tk()
root.geometry("200x100") #ウィンドウサイズ

#タイマーを開始する
def startTimer():
    total = int(entryBox.get())
    entryBox.pack_forget()
    startButton.pack_forget()
    now = total
    count(total, now)

#カウントダウンする
def count(total, now):
    if now >= 0:
        timeLabel['text'] = now
        setMessage(total, now)
        now -= 1
        root.after(1000, count, total, now)

#メッセージの表示
def setMessage(total, now):
    m = ''
    if now == 0:
        m = '時間です!'
    elif total/5 <= now and now <= total/3:
        m = 'がんばれ!'
    elif 0 < now and  now <= total/5:
        m = 'あと少し!'
    messageLabel['text'] = m

#------------
#部品の作成
#------------
#フォントの指定
font = font.Font(root,family="sans-serif",size=20,weight="bold")

#時間を入力するボックス
entryBox = tk.Entry(root, width=5, font=font)
entryBox.pack()

#スタートボタン
startButton = tk.Button(root, text="Start", command=startTimer, font=font)
startButton.pack()

#時間を表示するラベル
timeLabel = tk.Label(root, font=font)
timeLabel.pack()

#メッセージを表示するラベル
messageLabel = tk.Label(root, font=font)
messageLabel.pack()
    
root.mainloop()

画像の表示

import tkinter as tk
from PIL import Image, ImageTk #画像の処理

root = tk.Tk()
root.geometry("800x600") #ウィンドウサイズ

filename = "C:/Users/Hikyaku/Documents/temp/kotori.jpg"

canvas = tk.Canvas(width = 400,height = 300)
canvas.img = ImageTk.PhotoImage(file = filename)
canvas.pack()
canvas.create_image(0, 0,image = canvas.img, anchor = tk.NW)

tk.mainloop()

ボタンに画像を配置する

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
root.geometry("800x600")

filename = "C:/Users/Hikyaku/Documents/temp/kotori.jpg"

canvas = tk.Canvas(width = 0,height = 0) #仮のキャンバスを作っておく
img = ImageTk.PhotoImage(master=canvas, file = filename)
button = tk.Button(root, image=img, text="ことり", compound="top")
button.pack()

tk.mainloop()

 

要素の配置

root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ

frames = []
for i in range(3):
    frames.append(tk.Frame(root))
    frames[i].pack(side="left", anchor=tk.N) #左寄せ上詰め
    for j in range(i+1):
        button = tk.Button(frames[i],text='button')
        button.pack()
    
tk.mainloop()

 

文字の装飾

import tkinter as tk
from tkinter import font

root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
 
font = font.Font(root,family="serif",size=20,weight="bold")
label = tk.Label(text='こんにちは!ABC', font=font, fg='red', bg='yellow')
label.pack()

tk.mainloop()

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧