QtCreator模板向导:跳过%ProjectName%变量中的破折号

Яoi*_*ois 5 xml qt qt-creator

我正在尝试创建一个模板向导,其中项目名称(在"New Project .."对话框中捕获)是向下的,并用于在C++中生成不同的东西(命名空间,库名,等等......),所以生成的名称不能包含破折号,以数字开头等.

例如,在wizard.xml中,变量LIBRARYNAME是从用户输入生成的,但是它%ProjectName:l%默认采用downcased :

<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>
Run Code Online (Sandbox Code Playgroud)

使用正则validator = '^[^-]+$'表达式,我可以阻止用户在变量中引入破折号(' - ')但我无法阻止它们在设置%ProjectName%变量时执行相同操作.

是否有任何可能的方法来跳过%ProjectName%向导使用的不需要的符号和/或其他变量?例如"defaulttext",在xml中生成时.

到目前为止,我尝试使用不同的类似javascript的东西,但没有任何效果,模板向导上的文档太简单了,它们没有涵盖这些内容.

现在我的选择是删除表单中的默认文本,但这很糟糕!我想做很酷的事情,比如从项目名称生成命名空间名称.

jes*_*ter 3

正常的验证规则不适用于 %ProjectName% 变量吗?您是否尝试过添加类似的内容:

 <validationrules>
    <validationrule condition='/^[^-]+$/.test("%ProjectName%")'>
        <message>%ProjectName% cannot be used as project name.</message>
    </validationrule>
 </validationrules>
Run Code Online (Sandbox Code Playgroud)