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

Xml QtCreator模板向导:跳过%ProjectName%变量中的破折号,xml,qt,qt-creator,Xml,Qt,Qt Creator,我试图创建一个模板向导,其中项目名称(在“新项目…”对话框中捕获)被用于并在C++中生成不同的事物(命名空间,库名,…..),因此生成的名称不能包含破折号,从数字开始,等等。 例如,在wizard.xml中,变量LIBRARYNAME是根据用户输入生成的,但默认值为downcased%ProjectName:l%: <fieldpagetitle>Project Configuration</fieldpagetitle> <fields> &

我试图创建一个模板向导,其中项目名称(在“新项目…”对话框中捕获)被用于并在C++中生成不同的事物(命名空间,库名,…..),因此生成的名称不能包含破折号,从数字开始,等等。 例如,在wizard.xml中,变量
LIBRARYNAME
是根据用户输入生成的,但默认值为downcased
%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='^[^-]+$'
regexp thingy,我可以防止用户在变量中引入破折号('-'),但在设置
%ProjectName%
变量时,我不能阻止他们这样做

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

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


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

普通的验证规则对%ProjectName%variable不起作用吗??您是否尝试添加以下内容:

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

%ProjectName%不能用作项目名称。

您所说的“在xml中生成“defaulttext”是什么意思?您可以在XML中使用defaulttext=“anyText”当然可以,但我想使用%ProjectName%来实现它。它很有效!但是您必须删除“!”否则它会使所有不包含破折号的名称无效:DSorry,错误地颠倒了正则表达式匹配项:)我的错误答案已更正。您的答案与我想要的不完全一样,但后来我意识到我可以对%LIBRARYNAME%和其他变量(不能包含破折号的变量)应用相同的验证规则。不管怎样,用你的regexp代码,我现在就可以做到!非常感谢。