使用Qt Creator 变量
您可以在Preferences 、Build Settings 和Run Settings 中使用Qt Creator 变量,例如在设置参数、可执行文件路径和工作目录的字段中。这些变量会自动处理其展开时的引号问题,因此您无需将它们用引号括起来。
在字段中单击“
”(Variables )按钮,即可从特定上下文中可用的变量列表中进行选择。要了解每个变量的详细信息,请将光标悬停在列表中的相应变量上。
Qt Creator 的“变量”对话框中显示工具提示" src="images/qtcreator-variables.png" title="Qt Creator 的“变量”对话框中显示工具提示"/>
以下语法允许您将环境变量用作Qt Creator 变量:%{Env:VARNAME}。
模式替换
Qt Creator 在展开变量名时会使用模式替换。若要将变量中模式的第一个匹配项替换为替换内容,请使用:
%{variable/pattern/replacement}若要将变量中所有匹配该模式的项替换为替换内容,请使用:
%{variable//pattern/replacement}模式可以是正则表达式,替换内容可以包含反向引用。例如,如果%{variable} 为my123var ,则%{variable/(..)(\d+)/\2\1} 将展开为123myvar 。
除了正斜杠,您还可以使用井号(# )作为替换字符。当值被视为文件路径时,此方法非常有用,因为在 Windows 主机上,正斜杠可能会被转换为反斜杠。
使用默认值
若变量未设置,要使用默认值,请使用:
%{variable:-default}示例
以下各节包含Qt Creator 变量的使用示例。
当前文档变量
%{CurrentDocument} 变量将展开为关于当前在编辑器中打开的文件的信息。
例如:
%{CurrentDocument:Project:Name}展开为包含该文档的项目名称。%{CurrentDocument:FileName}展开为文档的名称。%{CurrentDocument:FilePath}展开为文档的完整路径(包括文件名)。%{CurrentDocument:DirName}展开为文档父目录的名称。
套件和构建配置变量
%{Project:DirName} 变量展开为项目文件夹的名称,%{Kit:FileSystemName} 展开为有关构建和运行套件的信息,而%{BuildConfig:Name} 展开为构建配置的名称。
您可以将它们组合起来,在Preferences >Build & Run >Default Build Properties 中设置Default build directory :
../build-%{Project:DirName}-%{Kit:FileSystemName}-%{BuildConfig:Name}
Qt 变量
%{Qt} 变量将展开为有关 Qt 安装的信息。
%{Qt:Version} 展开为 Qt 安装的版本号。您可以在套件名称中使用它。
设备变量
%{Device} 变量展开后显示有关您运行项目所在设备(运行设备)的信息。
例如:
%{Device:HostAddress}展开为设备配置中设备的宿主名或 IP 地址。您可以在 SSH 身份验证中使用它。%{Device:PrivateKeyFile}展开为私钥文件的文件名和路径。您可以将其用于 SSH 身份验证。%{Device:SshPort}展开为 SSH 连接的端口号。%{Device:UserName}展开为登录该设备所需的用户名。当设备未自动连接时,您可以将其用于自定义连接。
Git 变量
%{Git:Config:user.name} 展开为来自 Git 配置的用户名。您可以在许可证头模板中,或在任何需要 Git 用户名的字段中使用它。
另请参阅 “为项目指定环境”、“配置项目以供构建”和“配置项目以供运行”。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.