• 3613阅读
  • 4回复

[提问]获取QGraphicsScene的缩略图失败 [复制链接]

上一主题 下一主题
离线lcl_data
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-28
我尝试用下面的代码去获得QGraphicsScene缩略图
  1. #include "qttest501.h"
  2. #include <QGraphicsScene>
  3. #include <QPainter>
  4. #include <QDesktopWidget>
  5. qtTest501::qtTest501(QWidget *parent)
  6.     : QMainWindow(parent)
  7. {
  8.     ui.setupUi(this);  
  9.     QGraphicsScene *scene = new QGraphicsScene();
  10.     scene->addRect(QRectF(0, 0, 100, 200), QPen(Qt::black), QBrush(Qt::green));  
  11.   
  12.     QPixmap pixmap;
  13.     QPainter painter(&pixmap);
  14.     painter.setRenderHint(QPainter::Antialiasing);
  15.     scene->render(&painter);
  16.     painter.end();
  17.     bool sceneRet =  pixmap.save("scene.png","png");
  18.     pixmap = QPixmap::grabWindow(QApplication::desktop()->winId(),pos().x(),pos().y(),frameGeometry().width(),frameGeometry().height());
  19.     bool pixmapRet =  pixmap.save("blog.png","png");
  20. }
  21. qtTest501::~qtTest501()
  22. {
  23. }
但是sceneRet 一直是false,但是pixmapRet却是true,我的是5.0.1,大家也有碰到这个问题吗?

离线lcl_data
只看该作者 1楼 发表于: 2013-03-28
回 楼主(lcl_data) 的帖子
我知道了, pixmap没有初始化导致的。。
改成
  QPixmap pixmap(130,130);就可以了
离线lcl_data
只看该作者 2楼 发表于: 2013-03-28
奇怪,QPixmap pixmap 这样子写,qt应该帮忙初始化的呀!
离线彩阳

只看该作者 3楼 发表于: 2013-03-28
回 2楼(lcl_data) 的帖子
看看Qt帮助,这是建立一个无效的Pixmap,也就是说宽和高都是无效的。
上海Qt开发联盟,热忱地欢迎你的加入!
离线lcl_data
只看该作者 4楼 发表于: 2013-03-29
回 3楼(彩阳) 的帖子
QPixmap::QPixmap()
Constructs a null pixmap.

这个和C++不一样啊。。我没仔细看帮助,谢谢提醒。
快速回复
限100 字节
 
上一个 下一个