图片过大,怎样设置分页打印(QT的)

lugaideath1 2009-03-06 09:31:09
    QPrinter printer(QPrinter::ScreenResolution);

QPrintDialog *printDialog = new QPrintDialog(&printer, this);

if (printDialog->exec() == QDialog::Accepted)
{
QPainter painter(&printer);painter.setClipping(true);
QRect rect = painter.viewport();
QSize size = QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage().size();
scrollAreaWidgetContents->size().scale(rect.size(), Qt::KeepAspectRatio);
painter.setViewport(rect.x()-(size.width()-740)/2, rect.y(), size.width(), size.height());
painter.setWindow(QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage().rect());
painter.drawImage(0, 0, QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage());
}


我画出的图片太高,打印只打印一页,显示一部分而已,我要怎么做,让它自动分页呢?
还有怎样把它改成打印预览的模式显示出来再打印呢?
英文不太好,找了很旧帮助也没找到方法,希望高手指点!
...全文
1676 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lugaideath1 2009-03-09
  • 打赏
  • 举报
回复
顶上~~~还没有解决的问题~~~
lugaideath1 2009-03-08
  • 打赏
  • 举报
回复
不要缩放!应为图片太高!你缩小了打印出来都不清啊!
  • 打赏
  • 举报
回复
http://www.qiliang.net/qt/mainclasses.html
  • 打赏
  • 举报
回复
QT3还是4?3的mannual有中文的哦.
不过貌似Qt4对QPainter改的不多,我给你个链接,你研究下吧,中文的.
damndarn 2009-03-06
  • 打赏
  • 举报
回复
帮顶
  • 打赏
  • 举报
回复
以前我曾经因为图片太小 ,研究了一下.
你可以考虑用Qpixmap结合QWMatrix把图片缩放一下.

在Qt中进行绘图操作的时候我们常常需要对位图进行缩放,利用QWMatrix类 就可以很轻松的完成此功能,示例代码如下:
QPixmap pm ;

// do something to pm

if ( !pm.isNull() )
{
QWMatrix m;//创建一个QWMatrix类的对象
m.scale(0.5f, 0.5f);//设立一个进行缩小到1/2的变换矩阵
pm = pm.xForm(m);//进行变换操作
}
lugaideath1 2009-03-06
  • 打赏
  • 举报
回复
QT4的
梅文海 2009-03-06
  • 打赏
  • 举报
回复
没在 vc 下面搞过打印,不过楼主可以把图像进行分割后再打印吧,这样岂不是更简单一些

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧