Skip to content

สร้าง GUI ด้วย PySide ตอนที่ 4 : ทำปุ่มกัน

สวัสดีทุกท่านครับ บทความนี้ผมจะพาทุกท่านไปทำปุ่มบน GUI ด้วย PySide ครับ การที่เราจะสร้างปุ่มกดบนบน GUI ด้วย PySide เราต้องใช้โมดูลของ PySide นั้นคือ QPushButton

โดยมีลักษณะการใช้งานดังตัวอย่างต่อไปนี้ครับ
ตัวอย่างที่ 8

import sys
from PySide.QtCore import *
from PySide.QtGui import *

app = QApplication(sys.argv)
hello = QPushButton("Hello world!") #กำหนดข้อความในปุ่ม
hello.resize(100, 30) #กำหนดขนาดของปุ่ม

hello.show()
sys.exit(app.exec_())

ผลลัพธ์

จากตัวอย่างที่ 8 พอเราคลิกที่ปุ่ม Hello world! แล้วพบว่าไม่มีอะไรเกิดขึ้น หากเราต้องการให้มีการกระทำเกิดขึ้นหลังจากกดปุ่มเช่น ปิดโปรแกรมโดยมีลักษณะการใช้งานดังตัวอย่างต่อไปนี้ครับ
ตัวอย่างที่ 9

import sys
from PySide.QtCore import *
from PySide.QtGui import *

app = QApplication(sys.argv)
quit = QPushButton("Quit") #กำหนดข้อความในปุ่ม
quit.resize(75, 30) #กำหนดขนาดของปุ่ม
quit.setFont(QFont("Times", 18,QFont.Bold))
QObject.connect(quit,SIGNAL("clicked()"),
app, SLOT("quit()"))

quit.show()
sys.exit(app.exec_())

ผลลัพธ์

จากตัวอย่างที่ 9 เมื่อเเราคลิกที่ปุ่ม Quit พบว่า ได้มีการปิดโปรแกรมครับ เพราะเราได้มีการตั้งค่าที่โค้ด

QObject.connect(quit,SIGNAL("clicked()"),app, SLOT("quit()"))

ได้มีการเชื่อมต่อกับวัตถุ quit ซึ่งเป็นปุ่มแล้วเราได้กำหนดเงื่อนไข SIGNAL("clicked()") เมื่อคลิกแล้วให้มีการกระทำกับวัตถุ  app โดยใช้โค้ดคำสั่ง SLOT("quit()")) คือปิดหน้าต่างโปรแกรมครับ
ข้อควรรู้
เราสามารถกำหนด Font ตัวอักษร PySide ได้โดยใช้

setFont(QFont("ชื่อ Font", ขนาด, ถ้าต้องการกำหนดตัวหนาให้ใส่ QFont.Bold เพิ่ม)) #ตัวอย่างเช่น setFont(QFont("ชื่อ Font เช่น Times", ขนาด เช่น 18,QFont.Bold))

สามารถใช้ได้ทั้ง QLabel,QPushButton และต่าง ๆ ที่ใช้ตัวอักษรครับ

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

Published on Categories GUI, PySide

About wannaphong

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

ใส่ความเห็น

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