Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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 QML未收到有关属性更改的通知 在我的测试应用中,我使用QML和OcAML,它们都是由C++层连接的。您可以通过Github进行调查_Qt_Properties_Ocaml_Qml - Fatal编程技术网

Qt QML未收到有关属性更改的通知 在我的测试应用中,我使用QML和OcAML,它们都是由C++层连接的。您可以通过Github进行调查

Qt QML未收到有关属性更改的通知 在我的测试应用中,我使用QML和OcAML,它们都是由C++层连接的。您可以通过Github进行调查,qt,properties,ocaml,qml,Qt,Properties,Ocaml,Qml,首先,我想解释一下什么是我的QML。我的数据是长度为N的字符串列表列表。使用这些数据,我应该显示N个ListView,其中包含适当列表的元素。这种行为对于基于Tcl/tkgui的传统ocamlbrowser来说很简单 我知道我的GUI的一个缺点:若数据被更改,但上面列表的总数不会更改,那个么关于更改列表长度的信号将不会被发送。这就是为什么我将新数据设置为空列表,并发送新的实际数据。所以信号应该发射两次 您可以找到描述我的int类型属性的代码,该属性存储列表的计数 现在我们正站在我的问题面前。当我

首先,我想解释一下什么是我的QML。我的数据是长度为N的字符串列表列表。使用这些数据,我应该显示N个ListView,其中包含适当列表的元素。这种行为对于基于Tcl/tkgui的传统ocamlbrowser来说很简单

我知道我的GUI的一个缺点:若数据被更改,但上面列表的总数不会更改,那个么关于更改列表长度的信号将不会被发送。这就是为什么我将新数据设置为空列表,并发送新的实际数据。所以信号应该发射两次

您可以找到描述我的int类型属性的代码,该属性存储列表的计数

现在我们正站在我的问题面前。当我在发出信号之前更改OCaml端qDebug消息中的数据内容时,qDebug消息会被打印,但QML内容不会更改:所有内容似乎都发出了信号,但没有收到。这是一个来自我程序的日志,最后三行来自C++ QDECHEG,其他来自OcAML方面:

setSelectedIndexAt 0 to 2
selectedIndexes.length = 1
new path: /2
new_data.length = 1
[ [ Lazy; Parsing; Weak; Pervasives; Buffer; Printf; Toploop; Queue; Graphics; Arg; Num;     CamlinternalLazy; GraphicsX11; MoreLabels; Stream; Dynlink; Oo; Obj; Callback; Format; Complex; Genlex; UnixLabels; Stack; Lexing; Marshal];
[t; create; length; set; get; get_copy; check; fill; blit; S; Make ] ]
selected: [2; -1]
"emitted tablesChanged 0" 
"emitted tablesChanged 2" 
showDescription changed
那么,您对我的实现中存在的问题有何想法


另外,如果您需要的话,我很乐意添加一些额外的解释。

问题很简单:我没有从OCaml方面给setter打电话。我没有意识到使用打印是因为我曾经在setter和notifier中打印相同的消息

另外,非常感谢capisce