每用QtCreator创建一个Qt项目时都要为它添加中文支持,比如qt4:
就要在main.cpp里添加
QTextCodec* codec = QTextCodec::codecForName("GB18030");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
这样很不爽,修改了一下工程模板,使它在创建Qt项目是自动加上中文支持。
首先修改控制台模板,在我的机器上路径是:D:\Qt\qtcreator-4.0.3\share\qtcreator\templates\wizards\projects\qmake\consoleapp\main.cpp
修改后的main.cpp代码如下
%{Cpp:LicenseTemplate}\ %{JS: QtSupport.qtIncludes([ 'QtCore/QCoreApplication' ], [ 'QtCore/QCoreApplication' ]) }\ #include <QtCore> #if QT_VERSION >= 0x050000 #pragma execution_character_set("utf-8") #endif int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); a.addLibraryPath(a.applicationDirPath()); #if QT_VERSION < 0x050000 QTextCodec* codec = QTextCodec::codecForName("GB18030"); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForTr(codec); #else QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030")); #endif return a.exec(); }
</pre><pre code_snippet_id="1822416" snippet_file_name="blog_20160811_3_5046410" name="code" class="cpp">然后修改窗口程序模板,路径为:D:\Qt\qtcreator-4.0.3\share\qtcreator\templates\qt4project\main.cpp
修改后的main.cpp代码如下:
#include "%INCLUDE%" #include <%QAPP_INCLUDE%> #include <QtCore> #if QT_VERSION >= 0x050000 #pragma execution_character_set("utf-8") #endif int main(int argc, char *argv[]) { QApplication a(argc, argv); a.addLibraryPath(a.applicationDirPath()); #if QT_VERSION < 0x050000 QTextCodec* codec = QTextCodec::codecForName("GB18030"); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForTr(codec); #else QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030")); #endif %CLASS% w; %SHOWMETHOD% return a.exec(); }
这样就能在创建项目时,项目就能自动支持中文了。
提供修改后的项目模板下载地址:
http://yunpan.cn/c6UdeRCjVmryV 访问密码 f0da
把目录放到 D:\Qt\qtcreator-4.0.3\share\qtcreator 下覆盖即可。 D:\Qt\qtcreator-4.0.3是安装目录
最后加一个生成的程序中防止文件太乱的东东:
D:\Qt\qtcreator-4.0.3\share\qtcreator\templates\wizards\projects\qmake\consoleapp\file.pro
加上MOC_DIR = ./mocRCC_DIR = ./rccOBJECTS_DIR = ./objUI_DIR = ./ui