事实上Qt在每次创建工程时,都会根据工程类型对应的模板文件创建内容。要修改工程的创建代码,只需修改此模板文件的内容即可。
对于Qt Creator 7.0.0,各类型工程对应的模板文件存放于此目录下:...\Qt\Tools\QtCreator\share\qtcreator\templates\wizards\projects
其中大致包含以下内容:
如果要修改Qt Widgets Application
的创建代码,修改文件夹qtwidgetsapplication
中的文件内容即可。比如要修改main.cpp
的内容,修改.\qtwidgetsapplication\main.cpp
即可。文件名与工程文件都有明显的对应关系,此处就不赘述了。
比如,我希望在每次创建工程时都能在main函数开头加上这段代码:
if(QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
于是可以修改.\qtwidgetsapplication\main.cpp
为:
%{Cpp:LicenseTemplate}\
#include "%{HdrFileName}"
%{JS: QtSupport.qtIncludes([ 'QtGui/QApplication' ], [ 'QtWidgets/QApplication' ]) }\
@if %{HasTranslation}
#include <QLocale>
#include <QTranslator>
@endif
int main(int argc, char *argv[])
{
//添加的代码在此处
if(QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication a(argc, argv);
@if %{HasTranslation}
QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();
for (const QString &locale : uiLanguages) {
const QString baseName = "%{JS: value('ProjectName') + '_'}" + QLocale(locale).name();
if (translator.load(":/i18n/" + baseName)) {
a.installTranslator(&translator);
break;
}
}
@endif
%{Class} w;
w.show();
return a.exec();
}
(代码添加完毕,希望发文助手不要再警告我文章质量不佳了…)