当我需要在运行时创建任何QML组件时,我可以使用该指南:http: //qt-project.org/doc/qt-5/qtqml-javascript-dynamicobjectcreation.html
即只需调用Qt.createComponent和component.createObject
但我找不到如何在运行时创建ListModel?用qml,而不是用c ++.
你可以问,为什么我需要它.所以,我有一个嵌套的ListModel:有外部模型,它委托包含的内部模型.因此,当我调用outer_model.append({})时,我必须为内部模型传递新创建的ListModel .我不能在外部委托中使用静态定义的内部模型,因为我无法在运行时访问此类模型.顺便说一句,可以以某种方式访问它吗?
PS也许在javascript中尝试管理模型是完全错误的想法?
我在 Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 上使用 CentOS Linux 7.3.1611 版
在我的用户空间应用程序测试期间,我注意到 clock_gettime(CLOCK_MONOTONIC, &ts) 可能需要 5-6 微秒而不是平均约 23 纳秒。它可能每 10000 次后续调用只发生一次,但是它可能会发生。
如果没有 VDSO 库,则可以解释。但是,VDSO 用于每个clock_gettime(我通过strace 检查过)。
无论相应的线程是否关联到某个 CPU 内核。不管这个CPU内核是否与操作系统隔离。这意味着测试应用程序可能会在独占 CPU 内核上运行,而无论如何可能会出现延迟!
我通过比较两个随后的 clock_gettime 调用的结果来测量延迟,例如:
unsigned long long __gettimeLatencyNs() {
struct timespec t1_ts;
struct timespec t2_ts;
clock_gettime(CLOCK_MONOTONIC, &t1_ts);
clock_gettime(CLOCK_MONOTONIC, &t2_ts);
return ((t2_ts.tv_sec - t1_ts.tv_sec)*NANO_SECONDS_IN_SEC + t2_ts.tv_nsec - t1_ts.tv_nsec);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以分享一些想法,那里可能有什么问题?