เป็นการสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด ดังหลักการต่อไปนี้
เมื่อเริ่มต้น ให้ Button อยู่ในสถานะ DISABLED (คลิกไม่ได้) และ Label แสดงการนับเวลาถอย
หลังจากวินาทีที่ 10 แล้วลดลงทุก 1 วินาที เป็น 9, 8, -, 1 เมื่อครบ 10 วินาที ให้เปลี่ยนสถานะของปุ่มเป็นปกติ (คลิกได้)
โค้ด: เลือกทั้งหมด
from tkinter import *
window = Tk()
window.geometry('200x160')
window.option_add('*font', 'tahoma 12')
label = Label()
label.pack(pady=20)
button = Button(text='Download', state=DISABLED)
button.pack(pady=20)
count = 0
id = 0
def tick():
global count, id
count += 1
label.config(text=f'กรุณารอ {11 - count} วินาที')
id = label.after(1000, tick) #ให้เรียกฟังก์ชันตัวมันเองทุก 1 วินาทีแบบ Recursion
if count > 10:
label.config(text='กรุณาคลิกปุ่ม Download')
button.config(state=NORMAL)
label.after_cancel(id)
tick() #เรียกฟังก์ชันขึ้นมาทำงานครั้งแรก
mainloop()
เป็นการสร้างปุ่มดาวน์โหลดแบบมีการหน่วงเวลา พอรอการดาวน์โหลด
ช่องทางศึกษาเพิ่มเติม
เทคนิคการเขียน Python
บทเรียน Python
Programming - C/C++ & java & Python
บทเรียน Python GUI
บทเรียน Python Framework Flask