Qt 测试变量是否为空,并在qmake期间提供默认值
如何测试变量是否为空或未在Qt 测试变量是否为空,并在qmake期间提供默认值,qt,qmake,Qt,Qmake,如何测试变量是否为空或未在qmake.pro文件中定义?我想 如果未定义变量,则能够设置默认值 我试过了 eval("VARIABLE" = ""){ VARIABLE = test } eval("VARIABLE" = ""){ message(variable is empty) } 但我仍然收到消息“variable is empty”。如果测试是字符串值,请尝试 eval("VARIABLE" = ""){ VARIABLE = "test" } 如
qmake
.pro
文件中定义?我想
如果未定义变量,则能够设置默认值
我试过了
eval("VARIABLE" = ""){
VARIABLE = test
}
eval("VARIABLE" = ""){
message(variable is empty)
}
但我仍然收到消息“variable is empty”。如果测试是字符串值,请尝试
eval("VARIABLE" = ""){
VARIABLE = "test"
}
如果test是另一个变量,请尝试
eval("VARIABLE" = ""){
VARIABLE = $$test
}
已经有我没有发现的功能:
isEmpty(VARIABLE){
VARIABLE = test
}
isEmpty(VARIABLE ){
message(variable is empty)
}
我不明白为什么eval不起作用,我想…就像你自己的答案所说的,
isEmpty(VARIABLE)
做你想做的事:
isEmpty(VARIABLE) {
...
}
qmake语言没有等效的equals运算符(==
),但是您可以比较如下内容:
equals(VARIABLE, foo) {
...
}
还可以使用正则表达式检查变量是否包含子字符串:
contains(VARIABLE, .*foo.*) {
...
}
eval()
不起作用的原因是它执行其中的语句,如果语句成功,则返回true
因此,通过这样做:
eval(VARIABLE = "") {
...
}
…实际上是将“
赋值给变量
,使变量为空并输入块
关于测试函数的更多信息:qmake中的变量通常通过$$VARIABLE而不是“VARIABLE”解除引用。它将引号视为路径的文本,并尝试在Qt5.6中转义它们。如果不使用大括号和左外侧的
$$
包装要作为路径的变量,则括号也会执行相同的操作。