1. 把字符串绘制在QPixmap上

  1. QPixmap MainWindow::text2Pixmap(QString text)

  2. {

  3. QFontMetrics fmt(m_font);

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

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

  6. result.fill(Qt::transparent);

  7. QPainter painter(&result);

  8. painter.setFont(m_font);

  9. painter.setPen(QColor(255,143,36));

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

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

  12. return result;

  13. }

2. 对图片进行水平拼接

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

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

  3. {

  4. int image_width=0;

  5. int max_height = 0;

  6. QVector <QPixmap > ::iterator it;

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

  8. {

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

  10. image_width += width;

  11. image_width +=5;

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

  13. {

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

  15. }

  16. }

  17. QPixmap result_image_h(image_width,max_height);

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

  19. QPainter painter_h;

  20. painter_h.begin(&result_image_h);

  21. int x_number=0;

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

  23. {

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

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

  26. x_number +=5;

  27. }

  28. painter_h.end();

  29. return result_image_h;

  30. }

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. }

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

QT 中QPainter绘制文字、图片相关推荐

  1. Qt使用QPainter绘制方式显示图片

    Qt使用QPainter绘制方式显示图片 文章目录 Qt使用QPainter绘制方式显示图片 1.前言 2.主要代码 3.实现效果 4.源代码 更多精彩内容

  2. Qt中QPainter的使用

    Qt中QPainter的使用 GUI用户界面的优点是通过提供可视化的工具为客户提供便利的操作,界面上的按钮.编辑框等都是通过绘图得到的.Qt的二维绘图基本功能是使用QPainter在绘图设备上绘图,通 ...

  3. qt中实现绘制图形与截图

    引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图. 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_ ...

  4. Qt 通过 QPainter 绘制坐标轴

    一.概述 在自定义贝塞尔曲线中想绘制一个坐标轴. 二.步骤 2.1 新建一个类 PaintAxis 继承 QWidget 然后在界面上拖拽一个 widget,右键 widget 提升为 PaintAx ...

  5. Qt中QPainter基本绘图

    QWidget 派系的只能在paintEvent中进行重绘:如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数:如果你想利用线程绘制的话,你可以创建个 ...

  6. Qt中QLabel的背景图片设置问题

    在Qt开发的过程中,经常会遇到设置Label的背景图片问题,通常可以有一下两种方法设置: 方法1:通过setScaleContents来设置(有时候会出现svg图片无法自适应label大小的问题) Q ...

  7. QT实现PDF打印文字+图片。亲测可用!!!

    //在同一个文件中插入文字和图片,保存在E盘QPrinter printer_text;printer_text.setOutputFormat(QPrinter::PdfFormat);//保存文件 ...

  8. 使用Qt的QPainter绘制阿基米德螺旋线

    把笔记 c++绘制极坐标曲线 的代码中的allegro换成Qt的了. 因为自定义的QWidget写在源文件中所以Q_OBJECT注释掉了. #include <QApplication> ...

  9. Qt中 QPainter 刷新出现的问题

    最近学习Qt 自定义绘画时碰到两个问题,问题如下: 自定义绘画图形,采用重写QPaintEvent,发现绘画不起作用: 1.Qpainter不刷新,解决方法:在触发刷新是,调用updata()函数强行 ...

最新文章

  1. MIT发布白皮书:美国欲重返世界半导体霸主!
  2. 全球及中国生物柴油行业产量规模及市场消费需求预测报告2021-2027年
  3. ElasticSearch集成SpringData史上最全查询教程
  4. android 数据存储----android短信发送器之文件的读写(手机+SD卡)
  5. ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
  6. C语言 · 数的读法
  7. golang解析嵌套yaml配置(局部解析)
  8. 修复Mac上的“ Safari无法找到服务器”错误的解决方法
  9. 老人为啥怒砸30辆车
  10. k均值聚类算法原理和TensorFlow实现
  11. java 获取本机ip地址吗_java 获取本机ip地址
  12. 美术集网校—多点透视如何运用于绘画中?学会透视增加绘画体积感!
  13. 标量与向量乘积求导法则
  14. php随机生成18位数,PHP随机生成18位不重复的订单号代码实例
  15. visual studio code Python终端运行_深入比较kaldi和python_speech_features提取的fbank特征之间的区别...
  16. edgewin10无法安装_处理win10无法打开edge怎么解决
  17. MODBUS-RTU协议主机和从机代码STM32 包含2个程序代码,主机和从机
  18. CorelDRAW VBA - 读取XML文件,根据内容批量创建图形
  19. emc4012光纤直连服务器,Dell EMC PowerVault ME4012存储
  20. PCB钻孔输出的一个简单动作,却带来工厂的命运转折

热门文章

  1. 自建服务器 下bt,使用Docker安装OpenTracker,自建BT Tracker服务器
  2. 企业一般用php还是js,网站开发用php还是js
  3. Qt把已有工程添加到其他工程中作为子工程或新创建子工程
  4. 16进制的两位数转换不了 matlab_跟小黑学漏洞利用开发之16进制字符转换
  5. linux usb 升级脚本,linux – 使用bash脚本更新CRON
  6. 拦截器读post参数导致接口post请求报错_vue中Axios的封装和API接口的管理
  7. 关于「无人驾驶」的学习路线...
  8. apache添加支持php的模块,配置Apache支持PHP5 apache php 套件 apache添加php模块 apache部署php项...
  9. idea web 乱码 页面_idea运行web项目,页面乱码(转载)
  10. linux如何切换到光盘,怎么刻录cd光盘-Linux切换目录之cd命令详解