อ่านบทความชุด สร้าง GUI ด้วย PySide ใน Python
แนะนำ แนะนำให้ใช้โมดูล QtPy แทนบทความนี้ดีกว่าครับ อ่านเพิ่มเติมได้ที่ GUI ด้วย Qt ในภาษาไพทอน โค้ดเดียวใช้งานได้ทั้ง PyQt4 , PyQt5 และ PySide 4/1/2559
ผมได้ไปเจอโค้ดที่ช่วยเชื่อม API ระหว่าง PyQt4 และ PySide ที่สามารถให้สามารถนำโค้ดของ PyQt4 มารันบน PySide หรือ PySide ไปรันบน PyQt4 ได้ง่าย ๆ โดยเปลี่ยนแค่ import เท่านั้น (ผมลองแล้วใช้งานได้เฉพาะ API ใน QtCore, QtGui เท่านั้นครับ)
ทำการก็อปโค้ดด้านล่างมา แล้วบันทึกไฟล์เป็นไฟล์ ชื่อ QtWrapper.py ไว้ในโฟลเดอร์เดียวกันกับไฟล์ GUI ที่ต้องการ
การนำไปใช้งาน
เปิด python ในคอมมานด์ไลน์แล้วชี้โฟลดอร์เข้าไปในโฟลเดอร์ที่มีไฟล์ QtWrapper.py อยู่
โค้ดตัวอย่างจากบทความ สร้าง GUI ด้วย PySide Workshop 2 : ตัวอย่างโปรแกรม Digital Clock
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_())
เมื่อนำมาแก้ไขโดยเปลี่ยนเป็น QtWrapper
from QtWrapper 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_())
ผลลัพธ์
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)