การใช้งาน Python GUI (Tkinter) : การสร้างนาฬิกาแบบ Digital

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

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

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

การใช้งาน Python GUI (Tkinter) : การสร้างนาฬิกาแบบ Digital

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

การใช้งาน Python GUI (Tkinter) : การสร้างนาฬิกาแบบ Digital

การใช้งานPython GUI (Tkinter)
เป็นการสร้างนาฬิกาแบบ Digital โดยแสดงผลบน Label ด้วยการอ่านเวลาปัจจุบัน มาแสดงผลบน Label แต่เราต้อง
อัปเดตเวลาทุก 1 วินาที (1000 มิลลิวินาที) ซึ่งจากหัวข้อเรื่ององค์ประกอบพื้นฐานของวิดเจ็ต เราจะเห็นว่ามีเมธอด
after(time, function) ที่สามารถเรียก ฟังก์ชันขึ้นมาทํางานเมื่อครบกําหนดเวลาที่ระบุ ดังนั้น เราก็นําขั้นตอนการอ่าน
เวลาปัจจุบันไปสร้างไว้ในฟังก์ชัน แล้วใช้เมธอด after ของวิดเจ็ต เรียกฟังก์ชันตัวมันเองขึ้นมาทํางานทุก 1 วินาทีแบบ
Recursion เราก็จะได้เวลาที่อัปเดตต่อเนื่องไปเรื่อยๆ

รูปแบบการเรียกใช้

โค้ด: เลือกทั้งหมด

lb_clock.after(1000, tick)     
#ให้เรียกฟังก์ชันตัวมันเองทุก 1 วินาที

โค้ดที่ใช้รันโปรแกรม

โค้ด: เลือกทั้งหมด

from tkinter import *
from datetime import datetime

window = Tk()
window.title('Clock')
window.geometry('200x60')

lb_clock = Label(font='times 16')
lb_clock.pack(anchor=CENTER, expand=YES)

def tick():
    global curtime
    curtime = datetime.now().time()
    ftime = curtime.strftime('%H:%M:%S')
    lb_clock.config(text=ftime)
    lb_clock.after(1000, tick)      #ให้เรียกฟังก์ชันตัวมันเองทุก 1 วินาที

tick()          #เรียกฟังก์ชันขึ้นมาทำงานครั้งแรก
mainloop()
ผลลัพธ์การรันโปรแกรม
123.JPG
123.JPG (11.38 KiB) Viewed 5120 times
สรุป
ใช้เมธอด after ของวิดเจ็ต เรียกฟังก์ชันตัวมันเองขึ้นมาทํางานทุก 1 วินาทีแบบ
Recursion เราก็จะได้เวลาที่อัปเดตต่อเนื่องไปเรื่อยๆ

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

Re: การใช้งาน Python GUI (Tkinter) : การสร้างนาฬิกาแบบ Digital

โพสต์ที่ยังไม่ได้อ่าน โดย บุคคลทั่วไป »

from tkinter import *
from datetime import datetime
def click():
global n,image1
n = n+ 1
if n > 9:
n = 0
print (n)
if n == 0 :
image1=PhotoImage(file="frame-01.gif")
if n == 1 :
image1=PhotoImage(file="frame-02.gif")
if n == 2 :
image1=PhotoImage(file="frame-03.gif")
if n == 3 :
image1=PhotoImage(file="frame-04.gif")
if n == 4 :
image1=PhotoImage(file="frame-05.gif")
if n == 5 :
image1=PhotoImage(file="frame-06.gif")
if n == 6 :
image1=PhotoImage(file="frame-07.gif")
if n == 7 :
image1=PhotoImage(file="frame-08.gif")
if n == 8 :
image1=PhotoImage(file="frame-09.gif")
if n == 9 :
image1=PhotoImage(file="frame-10.gif")
bt1=Button(win01,image=image1,command=click)
bt1.place(x=20,y=0)
n = 0
win01 = Tk()
win01.title("Test")
win01.geometry("640x480")
image1=PhotoImage(file="frame-01.gif")
bt1=Button(win01,image=image1,command=click)
bt1.place(x=20,y=0)
mainloop()
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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