Qt怎么将界面保存为图片?

     Qt将界面保存为图片有两种方法:

     1.调用QPixmap的静态成员函数

       QPixmap grabWidget ( QWidget * widget, const QRect & rectangle )

       widget就是要保存的界面,rectangle是要保存的界面区域。    

      不过该方法现在被废弃了,改用QWidget的grab函数,其返回值也是QPixmap.


     2.调用QWidget的render函数

     void render ( QPaintDevice * target, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(),       RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ) )


    void render ( QPainter * painter, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ) )


     render的作用就是将QWidget的内容绘制到设备target中,这里的参数是QPaintDevice,所以不仅限于QPixmap。


     测试(Qt5.9.6)

    在界面中拖一个QTreeWidget和一个QLabel,将QTreeWidget的内容保存为图片,然后用QLabel显示出来。

    image.png

  

运行效果:

    image.png

 

       

     




演示站
上一篇:QGraphicsScene 类(翻译)
下一篇:如何获取和设置一个值的二进制第n位?

发表评论