使用Qt Creator 变量

您可以在PreferencesBuild SettingsRun Settings 中使用Qt Creator 变量,例如在设置参数、可执行路径和工作目录的字段中。变量会为其扩展名加引号,因此无需将其放在引号中。

在字段中选择变量 (Variables) 按钮,可以从特定上下文中可用的变量列表中进行选择。要了解每个变量的更多信息,请将光标移到列表中的变量上。

显示工具提示的 <span translate=Qt Creator 变量对话框" src="images/qtcreator-variables.png" title="显示工具提示的 Qt Creator 变量对话框"/>

使用以下语法可将环境变量用作Qt Creator 变量:%{Env:VARNAME}。

模式替换

Qt Creator 在扩展变量名时使用模式替换。要使用替换替换 变量模式的第一个匹配项,请使用 %{Env:VARNAME}:

%{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} 展开为文档的完整路径,包括文件名。

工具包和构建配置变量

%{ProjectName} 变量扩展为项目名称,%{Kit} 扩展为有关构建和运行工具包的信息,%{BuildConfig} 扩展为构建配置。

你可以将它们组合起来,在首选项>Build & Run >Default Build Properties 中设置默认的构建配置:

"build-%{ProjectName}-%{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.