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

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ธวัชชัย แสนหาญ
PHP Super Member
PHP Super Member
โพสต์: 499
ลงทะเบียนเมื่อ: 15/11/2018 10:02 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย ธวัชชัย แสนหาญ »

การใช้งาน 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
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 101