QT 中QPainter绘制文字、图片
1. 把字符串绘制在QPixmap上
QPixmap MainWindow::text2Pixmap(QString text)
{
QFontMetrics fmt(m_font);
QPixmap result(fmt.width(text), fmt.height());
QRect rect(0,0,fmt.width(text), fmt.height());
result.fill(Qt::transparent);
QPainter painter(&result);
painter.setFont(m_font);
painter.setPen(QColor(255,143,36));
//painter.drawText(const QRectF(fmt.width(text), fmt.height()),Qt::AlignLeft, text);
painter.drawText((const QRectF)(rect),text);
return result;
}
2. 对图片进行水平拼接
//多张图片拼接合成一张图片
QPixmap MainWindow::pinjie(QVector<QPixmap> image)
{
int image_width=0;
int max_height = 0;
QVector <QPixmap > ::iterator it;
for(it = image.begin();it!=image.end();++it)
{
int width = (*it).width();
image_width += width;
image_width +=5;
if((*it).height()>max_height)
{
max_height =(*it).height();
}
}
QPixmap result_image_h(image_width,max_height);
result_image_h.fill(Qt::transparent);
QPainter painter_h;
painter_h.begin(&result_image_h);
int x_number=0;
for(it = image.begin();it!=image.end();++it)
{
painter_h.drawPixmap(x_number,0,(*it));
x_number += (*it).width();
x_number +=5;
}
painter_h.end();
return result_image_h;
}
3. 把一张图片绘制在空白图片上
QPixmap MainWindow::zoomOutPix(QPixmap pix ,int addWidth, int addHeight)
{
// addWidth pix增加的宽度,addHeight pix增加的高度
QPixmap res(pix.width() + addWidth, pix.height() + addHeight);
res.fill(Qt::transparent);
QPainter painter(&res);
painter.drawPixmap(addWidth/2, addHeight/2, pix.width(), pix.height(), pix);
return res;
}
4. 把一张图片绘制在另外一张图片上
//一张图片绘制在另外一张图片上
QPixmap MainWindow::dijia(QPixmap p1, QPixmap p2)
{
//p1作为底片, p2绘制在p1图片上
QPainter painter(&p1);
painter.drawPixmap(0,0,p2.width(),p2.height(), p2);
return p1;
}
5. 图片的缩放
使用scaled函数进行图片的缩放。
//缩放
QString str = QString::fromLocal8Bit("(侏罗纪)");
QPixmap p = text2Pixmap(str);
p = p.scaled(100, 30, Qt::KeepAspectRatio, Qt::SmoothTransformation);
6. Qt快捷键
添加注释: Ctrl + /
代码格式快速对齐:Ctrl + A ,Ctrl + I
QT 中QPainter绘制文字、图片相关推荐
- Qt使用QPainter绘制方式显示图片
Qt使用QPainter绘制方式显示图片 文章目录 Qt使用QPainter绘制方式显示图片 1.前言 2.主要代码 3.实现效果 4.源代码 更多精彩内容
- Qt中QPainter的使用
Qt中QPainter的使用 GUI用户界面的优点是通过提供可视化的工具为客户提供便利的操作,界面上的按钮.编辑框等都是通过绘图得到的.Qt的二维绘图基本功能是使用QPainter在绘图设备上绘图,通 ...
- qt中实现绘制图形与截图
引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图. 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_ ...
- Qt 通过 QPainter 绘制坐标轴
一.概述 在自定义贝塞尔曲线中想绘制一个坐标轴. 二.步骤 2.1 新建一个类 PaintAxis 继承 QWidget 然后在界面上拖拽一个 widget,右键 widget 提升为 PaintAx ...
- Qt中QPainter基本绘图
QWidget 派系的只能在paintEvent中进行重绘:如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数:如果你想利用线程绘制的话,你可以创建个 ...
- Qt中QLabel的背景图片设置问题
在Qt开发的过程中,经常会遇到设置Label的背景图片问题,通常可以有一下两种方法设置: 方法1:通过setScaleContents来设置(有时候会出现svg图片无法自适应label大小的问题) Q ...
- QT实现PDF打印文字+图片。亲测可用!!!
//在同一个文件中插入文字和图片,保存在E盘QPrinter printer_text;printer_text.setOutputFormat(QPrinter::PdfFormat);//保存文件 ...
- 使用Qt的QPainter绘制阿基米德螺旋线
把笔记 c++绘制极坐标曲线 的代码中的allegro换成Qt的了. 因为自定义的QWidget写在源文件中所以Q_OBJECT注释掉了. #include <QApplication> ...
- Qt中 QPainter 刷新出现的问题
最近学习Qt 自定义绘画时碰到两个问题,问题如下: 自定义绘画图形,采用重写QPaintEvent,发现绘画不起作用: 1.Qpainter不刷新,解决方法:在触发刷新是,调用updata()函数强行 ...
最新文章
- MIT发布白皮书:美国欲重返世界半导体霸主!
- 全球及中国生物柴油行业产量规模及市场消费需求预测报告2021-2027年
- ElasticSearch集成SpringData史上最全查询教程
- android 数据存储----android短信发送器之文件的读写(手机+SD卡)
- ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
- C语言 · 数的读法
- golang解析嵌套yaml配置(局部解析)
- 修复Mac上的“ Safari无法找到服务器”错误的解决方法
- 老人为啥怒砸30辆车
- k均值聚类算法原理和TensorFlow实现
- java 获取本机ip地址吗_java 获取本机ip地址
- 美术集网校—多点透视如何运用于绘画中?学会透视增加绘画体积感!
- 标量与向量乘积求导法则
- php随机生成18位数,PHP随机生成18位不重复的订单号代码实例
- visual studio code Python终端运行_深入比较kaldi和python_speech_features提取的fbank特征之间的区别...
- edgewin10无法安装_处理win10无法打开edge怎么解决
- MODBUS-RTU协议主机和从机代码STM32 包含2个程序代码,主机和从机
- CorelDRAW VBA - 读取XML文件,根据内容批量创建图形
- emc4012光纤直连服务器,Dell EMC PowerVault ME4012存储
- PCB钻孔输出的一个简单动作,却带来工厂的命运转折
热门文章
- 自建服务器 下bt,使用Docker安装OpenTracker,自建BT Tracker服务器
- 企业一般用php还是js,网站开发用php还是js
- Qt把已有工程添加到其他工程中作为子工程或新创建子工程
- 16进制的两位数转换不了 matlab_跟小黑学漏洞利用开发之16进制字符转换
- linux usb 升级脚本,linux – 使用bash脚本更新CRON
- 拦截器读post参数导致接口post请求报错_vue中Axios的封装和API接口的管理
- 关于「无人驾驶」的学习路线...
- apache添加支持php的模块,配置Apache支持PHP5 apache php 套件 apache添加php模块 apache部署php项...
- idea web 乱码 页面_idea运行web项目,页面乱码(转载)
- linux如何切换到光盘,怎么刻录cd光盘-Linux切换目录之cd命令详解