QML使用switch或if报错 Unexpected token `switch'(或if)以及Expected a qualified name id

xzc1205 2018-06-21 02:51:25
想要做一个文字的按键切换,代码是文本的部分,但是只有一输入switch或if,这两个词本身就会报错,且他们后的前括号也有错
但是中间套的switch又不会报错

Text {
id: channel_now
color: "white"
font.pixelSize: 70 //字体大小设置为像素

switch (countnow)
{
case 0 : ; break;
case 1 :
{
switch (count3){
case 3 : text: "102.6"
}
}
}

/*if(countnow == 1)
{
if (count3 == 3)
text: "102.6"
else if (count3 == 4)
text: "101.2"
}*/
}


Unexpected token `switch'
Expected a qualified name id


找不到办法了
...全文
1599 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzc1205 2018-06-22
  • 打赏
  • 举报
回复
        Rectangle
{
width: 130
height: 60
x: 140
y: 130
color: "transparent"

Text {
id: channel_now
color: "white"
font.pixelSize: 70 //字体大小设置为像素
text: channelPlay(countnow)

}
}


text调用的部分在这里
xzc1205 2018-06-22
  • 打赏
  • 举报
回复
两个错误:switch里面用return;用return之后不再用break
目前的解决方法是在外面写了一个function定义这个switch函数,然后再text那里调用了函数
    property int count3: 0
property int count4: 0
property int countnow: 0

function channelPlay(countnow)//当前频道显示的switch函数
{
switch (countnow)
{
case 0 : return "";
case 1 :
switch (count3){
case 1 : return "95.5"
case 2 : return "96.7" ;
case 3 : return "102.6" ;
case 4 : return "105.8" ;
case 5 : return "108.0" ;
}
break;
case 2 :
switch (count4){
case 1 : return "756"
case 2 : return "864" ;
case 3 : return "909" ;
case 4 : return "1170" ;
case 5 : return "1395" ;
}
break;

default: return "";
}
}

懒懒的吉他手 2018-06-22
  • 打赏
  • 举报
回复
qml的item只是可视元素,而不是让你运行什么代码的……你写到外面,或者绑定c++,都可以
xzc1205 2018-06-21
  • 打赏
  • 举报
回复
text是放在一个Rectangle里面的
如果直接把switch放在这个Rectangle里面,text的外面,报错就会变成

Expected token `:'
Expected a qualified name id

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧