Qt根据汉字生成位图,可连续调用,生成的位图不会有杂点

void MainWindow::drawText(int font_size, QString str, int n)
{
QPainter p;
QSize size(460, font_size); //指定图片大小;
QImage* image = new QImage(size, QImage::Format_ARGB32); //以ARGB32格式构造一个QImage,
image->fill(qRgba(0,0,0,0));

p.begin(image);
QPen pen = p.pen();
pen.setColor(Qt::red);
QFont font;
font.setFamily(("SimSun"));
font.setPixelSize(64);//改变字体大小

p.setPen(pen);
p.setFont(font);
p.setBackgroundMode(Qt::TransparentMode);//Qt::OpaqueMode , TransparentMode
p.setCompositionMode(QPainter::CompositionMode_DestinationOver);
p.drawText(image->rect(), Qt::AlignCenter, QObject::tr(str.toStdString().c_str())); //Qt::AlignLeft Qt::AlignRight

if(1 == n)
{
image->save("1.bmp");
}
else
{
image->save("2.bmp");
}

p.end();

}

时间: 2024-11-05 12:20:40

Qt根据汉字生成位图,可连续调用,生成的位图不会有杂点的相关文章

用Qt生成dll类库及调用方法

空白工程新建DLL后,将DLL和LIB文件放入需要调用的"指定目录" 项目->属性->连接器->常规->附加库目录->添加"指定目录" 项目->属性->连接器->输入->附加依赖项->添加"LIB文件" 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法: 将.pro项目文件中的TEMPLATE = app改为TEMPL

类的连续调用方法

class a{ private $b = 0; public function c( $Num = 0 ) { $this->b = $Num; return $this; //关键就在这里,有这条就可以连续调用了, } public function d($d) { $this->b = $this->b+$d; return $this; } public function e(){ echo $this->b; } } //接下来是调用 $Obj = new a; $Obj

连续调用scanf的问题总结

对于非常简单的scanf函数,一直使用,但是却是有很多的知识点没有掌握好,现总结如下: 1.多个scanf之后,后序以 scanf("%c",&c) 当程序连续调用scanf 函数的,前面的获得输入接收的时候,一般结束都是以一个空白字符(空格.enter),比如enter 结束输入:但是,当后面接着是还有一个以 scanf("%c",&a) 的时候,则上面输出 enter 作为结束符,就会被输入到a,从而导致了a 为空. (1)以%d 继续输入的时候

Visual Studio 2010生成dll文件并调用(C#)

1.创建新C#控制台应用程序,项目命名createBll,打开Program.cs重命名为TestA(可以不重命名)并修改代码,如图: 写好后,可以写其它的类.cs文件 2.完成后,点击菜单栏的"项目",下拉单选择"createDll属性",打开如图窗口 在输出类型选择"类库",然后关掉该窗口,生成解决方案,即生成了creatBll.dll文件,在项目下createBll\createBll\bin\Debug\createBll.dll目录下.

多线程调用生成主键流水号存储过程产生主键冲突问题解决方案

遇到开发多线程测试插入数据的时候发现主键冲突问题 问题具体描述如下: -------------------------------------------------------------- 调用Procedure_insert Procedure_insert Begin Call procedure(获取流水号) Insert into table values(流水号作为id,其他列); End 流水号存储过程: Update 统计表 统计字段+1 Update 统计表 最终流水号 s

AFN的实时网络监控 但是block连续调用了两次

[[AFNetworkReachabilityManager sharedManager] startMonitoring]; [[AFNetworkReachabilityManager sharedManager ] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case -1: NSLog(@"未知网络"); break; case 0: NSL

cxf webservice生成客户端代码及调用服务端遇到的问题

1.  从网上下载cxf开发的工具 apache-cxf-3.1.4.zip, 解压文件,找到apache-cxf-3.1.4\bin目录,里面包含一个wsdl2java文件 2. 设置环境变量 1.CXF_HOME=F\CXF\apache-cxf-3.1.4. 2.在path后面加上 %CXF_HOME%/bin; 3.再classpath后面加上%CXF_HOME%/lib; 在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功  3.利用dos命令,生成客户端代码

js实现函数的连续调用

用js的方式实现如jquery那样的方法连续调用 $("div").width(100).height(500).html(123); var obj = {}; obj.func1 = function () { console.log('func1'); return this; }; obj.func2 = function () { console.log('func2'); return this; }; obj.func1().func2(); 原文地址:https://w

按照grouip分组,之后分组调用生成正式凭证 的接口

按照grouip分组,之后分组调用生成正式凭证 的接口 Map<String, List<OperatingLogVO>> resultMap = new HashMap<String, List<OperatingLogVO>>(); try{ for(OperatingLogVO tmExcpNew : list){ if(resultMap.containsKey(tmExcpNew.getGroupid())){ resultMap.get(tmEx

一个简单的连续调用脚本部署代码的案例

先简单描述一下环境,Jenkins部署在私有云,从git拉取代码并编译后会调用脚本将jar包部署到阿里云的应用服务器.阿里云应用服务器无公网IP,通过跳板机登录.就产生了连续调用脚本,穿透跳板机部署到阿里云内网的需求. 服务器信息:**主机名称 IP ** git server 10.150.27.51 jenkins server 10.150.27.52 jump server 1.1.1.1/192.168.2.20 app server1 192.168.2.21 app server1