Save QWidget as image

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

Developers working with Qt can easily save the visual content of a QWidget as an image for later reference. This process involves instantiating a QPixmap object, sized to match the target QWidget using its size() method. The widget's current rendering is then captured onto this QPixmap using its render() method. Finally, the populated QPixmap can be saved to a file in various supported formats like PNG or JPEG, providing a straightforward way to persist widget visuals.

ไลบรารี 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 อ่าน/เขียน
C++ IMAGE QT QWIDGET

  RELATED

  COMMENT

1
Anonymous
Sep 22, 2018 at 6:48 pm

Great stuff!