我正在尝试创建一个模板向导,其中项目名称(在“New Project ..”对话框中捕获)是向下的,并用于在C ++中生成不同的东西(命名空间,库名,等等.. ),因此生成的名称不能包含破折号,以数字开头等等。
例如,在wizard.xml中,变量LIBRARYNAME
是根据用户输入生成的,但它是默认的%ProjectName:l%
:
<fieldpagetitle>Project Configuration</fieldpagetitle>
<fields>
<!-- Library name -->
<field mandatory="true" name="LIBRARYNAME">
<fieldcontrol class="QLineEdit" validator='^[^-]+$'
defaulttext="%ProjectName:l%" />
<fielddescription>Name for created library (all lowercase)</fielddescription>
</field>
使用validator = '^[^-]+$'
正则表达式,我可以阻止用户在变量中引入破折号(' - ')但是在设置%ProjectName%
变量时我不能阻止它们这样做。
是否有可能在%ProjectName%
和/或向导使用的其他变量中跳过不需要的符号?例如,在xml中生成"defaulttext"
时。
到目前为止,我尝试过使用不同类似javascript的东西,但没有任何效果,模板向导上的文档太简单了,而且它们没有涵盖这些内容。
现在我的选择是删除表单中的默认文本,但这很糟糕!我想做一些很酷的事情,比如从项目名称生成命名空间名称。
答案 0 :(得分:3)
普通验证规则不适用于%ProjectName%变量吗?您是否尝试过添加以下内容:
<validationrules>
<validationrule condition='/^[^-]+$/.test("%ProjectName%")'>
<message>%ProjectName% cannot be used as project name.</message>
</validationrule>
</validationrules>