Skip to content

สร้าง GUI ด้วย PySide Workshop 2 : ตัวอย่างโปรแกรม Digital Clock

สวัสดีทุกท่านครับ บทความสร้าง GUI ด้วย PySide Workshop ตอนที่ 2 นี้จะนำเสนอเกี่ยวกับ ตัวอย่างโปรแกรม Digital Clock ครับ เป็นโปรแกรมบอกเวลาแบบดิจิตอล


ในการเขียนโปรแกรม Digital Clock นี้เราต้องวิเคราะห์กันก่อนครับ จากโค้ดนี้

import time
while True != False:
    print(time.strftime("%H"+":"+"%M"+":"+"%S"))
    time.sleep(1)

เราต้องดึงโมดูล time และ sys มาใช้งาน นอกจากนั้นเราต้อง Loop ให้ตัวเลขเปลี่ยนไปตามที่เวลาที่เปลี่ยนไปครับ แต่ใน Qt มี QtCore.QTimer , QtCore.QTime.currentTime() มาเรียกใช้งานเกี่ยวกับเวลาโดยที่เราไม่ต้องเป็นต้อง import time อีกครับ นอกจากนั้นใน Qt เราต้องใช้ QtGui.QLCDNumber สำหรับการแสดงผลครับ
โค้ดตัวอย่าง :

from PySide import QtCore, QtGui
class DigitalClock(QtGui.QLCDNumber):
    def __init__(self, parent=None):
        super(DigitalClock, self).__init__(parent)


        self.setSegmentStyle(QtGui.QLCDNumber.Filled)

        timer = QtCore.QTimer(self)
        timer.timeout.connect(self.showTime)
        timer.start(1000)

        self.showTime()

        self.setWindowTitle("โปรแกรมตัวอย่าง Digital Clock") #ชื่อหัวโปรแกรม
        self.resize(350,150) #กำหนดขนาด

    def showTime(self):
        time = QtCore.QTime.currentTime()
        text = time.toString('hh:mm')
        if (time.second() % 3) == 0:
            text = text[:2] + ' ' + text[3:]

        self.display(text)

if __name__ == '__main__':
    import sys

    app = QtGui.QApplication(sys.argv)
    clock = DigitalClock()
    clock.show()
    sys.exit(app.exec_())

ผลลัพธ์

ติดตามบทความต่อไปนะครับ 🙂
ขอบคุณครับ

Published on Categories GUI, PySide

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

1 thought on “สร้าง GUI ด้วย PySide Workshop 2 : ตัวอย่างโปรแกรม Digital Clock

  1. wannaphong

    ประกาศเพิ่มเติมวันที่ 27 สิงหาคม พ.ศ.2557
    ================================
    เลื่อนการประกาศผลไปเป็นสิ้นเดือนหน้าครับ ระหว่างนี้สามารถส่งเข้ามากันได้เรื่อย ๆ ไม่จำกัดครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *