QT_QML_常见问题
1. qml文件中,如果要添加信号连接,如果与控件x有丁点关联,则将Connections{}最好放到该控件的{}内部,不这样做曾经遇到接受不到信号的奇葩问题。
2. 使用TabView时,在每个Tab内部最好在最上层加一个Rectangle,否则有时候显示不出来。
3. 从c++中向qml传递信号时,如果emit 信号很频繁,可能会导致在一些机器上出现界面跳转不正常的现象,例子:
c++发送信号,连着发送六个:
(.h中信号的定义: void sigPoseChanged(int index,float param); )
emit sigChanged(0,param0);
emit sigChanged(1,param1);
emit sigChanged(2,param2);
emit sigChanged(3,param3);
emit sigChanged(4,param4);
emit sigChanged(5,param5);
qml中接受信号:
Connections
{
target: qml_ctrl //object of class UmProg
onSigPoseChanged:{
switch(index)
{
case 0:
xx0.text = param
xx0.update()
break
case 1:
xx1.text =param
xx1.update()
break
case 2:
xx2.text = param
xx2.update()
break
case 3:
xx3.text = param
xx3.update()
break
case 4:
xx4.text = param
xx4.update()
break
case 5:
xx5.text = param
xx5.update()
break
default:break
}
}
}//connections
改成发送一个信号,一个信号中包括6个变量,界面就ok了:
void sigPoseChanged(float param1,float param2,float param3,float param4,float param5,float param6);