QT 中QPainter绘制文字、图片

1. 把字符串绘制在QPixmap上函数

 
  1. QPixmap MainWindow::text2Pixmap(QString text)spa

  2. {code

  3. QFontMetrics fmt(m_font);orm

  4. QPixmap result(fmt.width(text), fmt.height());blog

  5.  
  6. QRect rect(0,0,fmt.width(text), fmt.height());图片

  7. result.fill(Qt::transparent);字符串

  8. QPainter painter(&result);it

  9. painter.setFont(m_font);io

  10. painter.setPen(QColor(255,143,36));form

  11. //painter.drawText(const QRectF(fmt.width(text), fmt.height()),Qt::AlignLeft, text);

  12. painter.drawText((const QRectF)(rect),text);

  13. return result;

  14. }

2. 对图片进行水平拼接

 
  1. //多张图片拼接合成一张图片

  2. QPixmap MainWindow::pinjie(QVector<QPixmap> image)

  3. {

  4.  
  5. int image_width=0;

  6. int max_height = 0;

  7. QVector <QPixmap > ::iterator it;

  8. for(it = image.begin();it!=image.end();++it)

  9. {

  10. int width = (*it).width();

  11. image_width += width;

  12. image_width +=5;

  13. if((*it).height()>max_height)

  14. {

  15. max_height =(*it).height();

  16. }

  17. }

  18. QPixmap result_image_h(image_width,max_height);

  19. result_image_h.fill(Qt::transparent);

  20. QPainter painter_h;

  21. painter_h.begin(&result_image_h);

  22. int x_number=0;

  23. for(it = image.begin();it!=image.end();++it)

  24. {

  25. painter_h.drawPixmap(x_number,0,(*it));

  26. x_number += (*it).width();

  27. x_number +=5;

  28. }

  29. painter_h.end();

  30. return result_image_h;

  31. }

3. 把一张图片绘制在空白图片上

 
  1. QPixmap MainWindow::zoomOutPix(QPixmap pix ,int addWidth, int addHeight)

  2. {

  3. // addWidth pix增长的宽度,addHeight pix增长的高度

  4. QPixmap res(pix.width() + addWidth, pix.height() + addHeight);

  5. res.fill(Qt::transparent);

  6. QPainter painter(&res);

  7. painter.drawPixmap(addWidth/2, addHeight/2, pix.width(), pix.height(), pix);

  8. return res;

  9. }

4. 把一张图片绘制在另一张图片上

 
  1. //一张图片绘制在另一张图片上

  2. QPixmap MainWindow::dijia(QPixmap p1, QPixmap p2)

  3. {

  4. //p1做为底片, p2绘制在p1图片上

  5. QPainter painter(&p1);

  6. painter.drawPixmap(0,0,p2.width(),p2.height(), p2);

  7. return p1;

  8.  
  9. }

5. 图片的缩放

使用scaled函数进行图片的缩放。

 
  1. //缩放

  2. QString str = QString::fromLocal8Bit("(侏罗纪)");

  3. QPixmap p = text2Pixmap(str);

  4. p = p.scaled(100, 30, Qt::KeepAspectRatio, Qt::SmoothTransformation);

6. Qt快捷键

添加注释: Ctrl + /       

代码格式快速对齐:Ctrl  + A ,Ctrl + I

相关文章
相关标签/搜索