การใช้งาน Python GUI (Tkinter) : การสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: การใช้งาน Python GUI (Tkinter) : การสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด

การใช้งาน Python GUI (Tkinter) : การสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด

โดย ธวัชชัย แสนหาญ » 26/02/2019 6:13 pm

การใช้งาน Python GUI (Tkinter) : การสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด

เป็นการสร้าง 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()
Screenshot (65).png
สรุป
เป็นการสร้างปุ่มดาวน์โหลดแบบมีการหน่วงเวลา พอรอการดาวน์โหลด

ช่องทางศึกษาเพิ่มเติม :baa:
เทคนิคการเขียน Python
บทเรียน Python
Programming - C/C++ & java & Python
บทเรียน Python GUI
บทเรียน Python Framework Flask

ข้างบน