Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 使用if时出现意外的令牌错误_Qt_Qml_Qt5 - Fatal编程技术网

Qt 使用if时出现意外的令牌错误

Qt 使用if时出现意外的令牌错误,qt,qml,qt5,Qt,Qml,Qt5,我有一个名为name的属性,它依赖于索引,它是列表视图委托的一部分。我编写了以下代码: property string name : if ( index == 0 ) "ABC" else if ( index == 1 ) "DEF" else if ( index == 2 )

我有一个名为name的属性,它依赖于索引,它是列表视图委托的一部分。我编写了以下代码:

 property string name : if ( index == 0 )
                        "ABC"
                        else if ( index == 1 )
                         "DEF"
                        else if ( index == 2 )
                         "GHI"
                        else if ( index == 3 )
                         "JKL"
                        else if ( index == 4 )
                         "MNO"
                        else 
                         "XYZ"
它在Qt5(Linux)上运行得非常好,但当我在Qt4.7(Windows)上运行它时,我开始遇到一个奇怪的错误:

意外标记'if' 属性字符串名称:if(索引==0)

应为限定名称id “ABC”


有人能告诉你哪里出了问题吗?

这是可行的,尽管你可能需要将if/else if/else if/../else包装成
{}

猜测一下:Qt5=qtquick 2。Qt4=QT1。也许您使用了qtquick 2功能,但这些功能在qtquick 1中不起作用?我想说的是,在Qt4.7上,您无法使用多个
if/else
定义
属性。你试过调用一个函数吗?@Greenflow这对我来说并不是一个新的“功能”。我已经做了必要的更改(将导入语句更改为QtQuick 1.0)。@koopajah函数工作正常,我一直在使用它们。我也猜到了你的建议,但找不到同样的文档。关于这方面的正确文档有什么线索吗?@AmitTomar>我只找到了这个:它显示了如何使用属性的示例,但没有一个使用if/else。您尝试了{if….else…}或if(){}else{},或者两者都尝试了?它在这里工作。。。尽管使用Qt4.8.5I,我尝试了所有可能的组合。{if{}else{},{if else},if{}else{}等。。但两者都不起作用。。我使用的是Qt4.7,但“两者都不起作用”不起作用。请显示命令行错误消息。还有,你试过4.8吗?你在Linux上用Qt4.7试过这个吗?它在这里工作得很好,所以我现在很好奇。@AmitTomar:一年多后它还没有解决吗??