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


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

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

ธวัชชัย แสนหาญ
PHP Super Member
PHP Super Member
Posts: 499
Joined: 15/11/2018 10:02 am

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

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

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

เป็นการสร้าง UI ที่ประกอบด้วย Label เพื่อแสดงเวลา และ Button สําหรับการคลิก เพื่อดาวน์โหลด ดังหลักการต่อไปนี้
เมื่อเริ่มต้น ให้ Button อยู่ในสถานะ DISABLED (คลิกไม่ได้) และ Label แสดงการนับเวลาถอย
หลังจากวินาทีที่ 10 แล้วลดลงทุก 1 วินาที เป็น 9, 8, -, 1 เมื่อครบ 10 วินาที ให้เปลี่ยนสถานะของปุ่มเป็นปกติ (คลิกได้)

Code: Select all

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

Return to “Python Knowledge”

Users browsing this forum: No registered users and 6 guests