这篇文章写于QT5.6的诞生,它是QT5的第一个长期支持版。这也是QT5已成熟的里程碑。

我搭建的环境是:Win10+VS2015+QT5.6+QtCreator

在安装VS2015的时候,若是用QtCreator开发,那么只需选择“适用于VC2015的公共工具”仅此一项,安装耗时则仅需20分钟左右。

 

Win+VS+QT5+QtCreator,在源文件里有中文的时候,例如SetWindowTitle("哈哈哈");会提示错误:常量中有换行符。解决方式两步走:

第一步:QtCreator→工具→选项→文本编辑器→行为→文件编码→UTF-8BOM→选择“如果编码是UTF8则添加”

第二步:在源码里含中文的前面,加上“u8”,例如SetWindowTitle(u8"哈哈哈");

 

“u8”是c++11的内容,支持C++11的主流编译器都会支持它。

在qt4中正常的 char* p="哈哈哈"; 在qt5中需要改成 const char* p = u8"哈哈哈";

 

在Qt5里,QString的编码是unicode,源文件编码被强制为utf8,而简体中文的Win系统的本地编码是GBK。
换句话说,Qt5程序在简体中文的Win系统里,会有QString←GBK与GBK←QString的需求:

QString←GBK:QString str = QString::fromLocal8Bit(内容);
GBK←QString:QByteArray str = QString.toLocal8Bit();

Local8Bit 就是系统本地编码的意思,Qt 会自动识别它,对于linux就是utf8,简体中文Win就是GBK,繁体中文Win就是BIG5。

 

对于写传统的GUI程序,Qt4只需要包含<QtGui>即可,在Qt5中则改成<QtWidgets>,就不会出现需要包含很多头文件的情况了。别忘了 QT += widgets。

=========另==========

最近使用qt5 编写应用时中文出现常量中有换行符错误,试了QString::fromutf8、QString::fromlocal8bit都一样。但奇怪的是将中文“极差图”改为“均值图”就好了,可我均值极差图都要,文件是utf8格式的,哪位高手帮帮忙,先谢谢啦!

 

QTcreator 本身没问题。是你不会设置。。。 QTcreator ->工具-> 选项 ->行为-> 默认编码 设为 UTF-8,UTF-8 BOM 设为 如果编码是 UTF-8 则添加。 这样设置完后, cpp 文件自动就存为带 BOM 的 utf-8 了。 要说有问题也是微软的 vc++ 编译器有问题,无法识别不带 BOM 的 utf-8。。。

posted @ 2021-09-16 14:41 林Lin☆☆ 阅读(1834) 评论(0) 推荐(0) 编辑
摘要: 在 Visual Studio 中,测试 IHttpModule(httpModules) 正常,但是放到服务器上去就不起作用了,这多半得多服务器 IIS 配置入手。 一、看“应用程序池”的“托管管道模型”是否正确 要使用“集成”才正确,网上有说得用“经典”模式,但我测试得用“集成”模式。 二、we 阅读全文
posted @ 2016-02-19 16:02 林Lin☆☆ 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 在asp.net mvc中如何使用Grid++ Report (锐浪报表) 在cshtml,razor中的处理方法以官方的asp.net(csharp)中的第一个示例"1a.简单表格"为例:视图: 后台:public ActionResult ViewTest_Query() {... 阅读全文
posted @ 2015-06-05 10:39 林Lin☆☆ 阅读(3154) 评论(0) 推荐(1) 编辑
摘要: 新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下: TAnonymousThreadX = class(TThread) private FProc: TProc; AValue:T; protected procedure Execute; override; public constructor Create(const AProc: TProc;ProcPar:T); end; TThreadHelper= class helper for TThread p... 阅读全文
posted @ 2013-09-23 13:55 林Lin☆☆ 阅读(2972) 评论(0) 推荐(1) 编辑
摘要: 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法在C#中对泛型的扩展,输入参数是泛型本身的内容,返回值则是bool.基于这一点,开始构造在delphi下如何实现.首先1.delphi 是支持匿名函数的其语法为:名称 = reference to 函数类型定义例如:TFun = reference to function(const num: Integer): Integer;2.对泛型的扩展的语法如下:TList = class(Generics.Collections.TList) public *********... 阅读全文
posted @ 2013-08-12 10:49 林Lin☆☆ 阅读(1318) 评论(1) 推荐(1) 编辑
点击右上角即可分享
微信分享提示