【问题标题】:How to create screenshot of QWidget?如何创建 QWidget 的屏幕截图?
【发布时间】:2012-05-10 01:04:23
【问题描述】:

我在 Qt Creator 中做作业,在那里我绘制到 QWidget,我需要保存这个 QWdiget 的一部分。

我试图解决这个问题:

 QPixmap pixmap;
 pixmap.copy(rectangle); // rectangle is part of QWidget, which I need to save
 pixmap.save("example.png");

感谢您的帮助。

【问题讨论】:

    标签: qt save qwidget qpixmap


    【解决方案1】:

    您可以为此使用QWidget::render。假设rectangle 是一个QRect:

    QPixmap pixmap(rectangle->size()); 
    widget->render(&pixmap, QPoint(), QRegion(rectangle));
    

    【讨论】:

    • 如何将其保存到文件中?
    • @bachurim09:问题中的代码就是这样做的。另请查看 QPixmap 的文档。
    • 简而言之,就是:pixmap.save("Hello.jpg"); 文档位于qt-project.org/doc/qt-5.0/qtgui/qpixmap.html
    【解决方案2】:

    来自QWidget::Grab

    QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
    

    【讨论】:

    • 天才?!我正在使我的小部件可拖放。并且 mime 数据有一个您可以设置的图标,当您拖动到容器外时,它会显示在光标下方。
    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 2014-03-18
    • 2019-02-08
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多