• 5414阅读
  • 10回复

[提问]关于将osgwidget内容保存成图片 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-23
我想把OSGWidget中的内容保存成pdf
代码如下
QString fileName = QFileDialog::getSaveFileName(this, CodecProcess::codecProcess("保存图形"), "", tr("File (*.pdf)"));
    QPrinter printer;
    printer.setPageSize(QPrinter::A4);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName(fileName);
    QPainter painter(&printer);
    scene->render(&painter);
保存之后PDF文件为空白的
请问应该作何修改? 本人QT新手。。求指导 谢谢!

只看该作者 1楼 发表于: 2013-03-28
求大神降临
离线彩阳

只看该作者 2楼 发表于: 2013-03-28
高手啊,帮顶了,记得成功了之后总结一下哦。
上海Qt开发联盟,热忱地欢迎你的加入!

只看该作者 3楼 发表于: 2013-03-29
看到有人回复 我以为大神降临了 = =! 激动坏了。。继续求知路上挣扎。。

只看该作者 4楼 发表于: 2013-04-01
没人愿意帮我啊 看来。。哎。。
离线jdwx

只看该作者 5楼 发表于: 2013-04-01
回 4楼(一大波蓝猫) 的帖子
先把scene换成view,看看效果。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。

只看该作者 6楼 发表于: 2013-04-01
回 5楼(jdwx) 的帖子
我搜了下相关资料 有说用view的 这里的view就是OSGWidget的对象吧?   我换成那个之后 还是没有内容 只有蓝色的背景

只看该作者 7楼 发表于: 2013-04-01

第一个图是实际的内容 第二个图为保存的pdf的结果
代码如下 请问哪有问题。。

     QString fileName = QFileDialog::getSaveFileName(this, CodecProcess::codecProcess("保存图形"), "", tr("File (*.pdf)"));
    QPrinter printer;
    printer.setPageSize(QPrinter::A4);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setOutputFileName(fileName);
    QPainter painter(&printer);
    painter.setWindow(widget->rect());
    painter.drawPixmap(0, 0, QPixmap::grabWidget(widget, widget->rect()));
    widget->render(&painter);
离线jdwx

只看该作者 8楼 发表于: 2013-04-01
不错有颜色保存进文件了,剩下的就是查找scene为什么保存失败。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。

只看该作者 9楼 发表于: 2013-04-01
回 8楼(jdwx) 的帖子
调试么?  为什么书上写的那么几行 就说行。。  哪有详细的资料么? 求指导。。

只看该作者 10楼 发表于: 2013-04-06
纠结啊。。不知道为什么 有人知道原因么  每次保存的结果 内容还不太一样。。
快速回复
限100 字节
 
上一个 下一个