ไลบรารี Qt เป็นไลบรารีกราฟิกส่วนติดต่อผู้ใช้ (GUI) ที่ยอดเยี่ยมสำหรับโปรแกรมเมอร์ C++ ซึ่งพัฒนาโดย Nokia และปัจจุบันเป็นโครงการโอเพนซอร์ส บ่อยครั้งที่เราอาจใช้ QPainter เพื่อวาดข้อความ เส้น หรือรูปภาพบน QWidget เราสามารถแทนที่เมธอด paintEvent() ของ QWidget เมื่อเราต้องการใช้ QPianter object เพื่อวาดบางสิ่งบน QWidget
หากเราต้องการบันทึกรายการที่วาดบน QWidget เป็นรูปภาพเพื่อใช้อ้างอิงในภายหลัง เราจะทำอย่างไรได้บ้าง เราสามารถบันทึก QWidget เป็นรูปภาพได้ นี่คือโค้ดสำหรับการทำสิ่งนี้:
QPixmap pixmap(this->size());
this->render(&pixmap);
pixmap.save("test.png");
ค่อนข้างง่ายใช่ไหม ใช่ นี่คือโค้ดทั้งหมดที่คุณต้องการ ที่นี่ this หมายถึงตัวชี้ QWidget ใดๆ ซึ่งมีเมธอด size() ที่ส่งคืนขนาดของ QWidget, pixmap จะใช้ค่านี้เพื่อสร้างรูปภาพที่มีขนาดเท่ากัน ต่อมา เราต้องใช้เมธอด render() เพื่อแสดงเนื้อหาของวิดเจ็ตไปยังออบเจ็กต์ QPixmap สุดท้าย เราต้องบันทึกเนื้อหาที่แสดงผลเป็นรูปภาพ
ตารางต่อไปนี้แสดงรูปแบบไฟล์รูปภาพที่ QPixmap รองรับ
รูปแบบ | คำอธิบาย | การรองรับของ Qt |
---|---|---|
BMP | Windows Bitmap | อ่าน/เขียน |
GIF | Graphic Interchange Format (ไม่บังคับ) | อ่าน |
JPG | Joint Photographic Experts Group | อ่าน/เขียน |
JPEG | Joint Photographic Experts Group | อ่าน/เขียน |
PNG | Portable Network Graphics | อ่าน/เขียน |
PBM | Portable Bitmap | อ่าน |
PGM | Portable Graymap | อ่าน |
PPM | Portable Pixmap | อ่าน/เขียน |
XBM | X11 Bitmap | อ่าน/เขียน |
XPM | X11 Pixmap | อ่าน/เขียน |
Great stuff!