[Qt Quick 踩坑] QML端函数参数未定义
在QML中链接C++信号本是一件简单的事情,但是今天遇到了一个十分无语的事情,c++端发出了一个信号,信号的参数是一个时间戳,类型为std::in64_t
,这个信号链接到QML端时,打印出来的数值永远是undefine
。
排查良久终于找到解决方案,将int64_t
换成qint64
即可。
int64_t 的真正定义是 long int,而 qint64则是 long long,c++类型到js类型的转换工作是由Qt完成的,我猜测可能是它没有针对long int做转换。遗憾的是我并未在官方文档中找到相关描述,如果有大佬发现依据,还请不吝赐教。