Save QWidget as image

  Peter        2012-08-19 12:01:18       27,746        1          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

ไลบรารี 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


  1 COMMENT


Anonymous [Reply]@ 2018-09-22 18:48:07

Great stuff!



  RANDOM FUN

Programmer of the year