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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

First Snowflakes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值