我正在QML中构建UI,目前仅处理UI逻辑,而稍后保留应用程序逻辑.我有点担心我所涉及的所有讨论,这些讨论涉及多线程,异步与同步代码以及UI的缓慢性,我想确保以后添加应用程序逻辑时,QML不会通过某种方式强制单线程异步代码来阻止我,并使我减速.
也许这听起来很荒谬,但了解我是非Web GUI工作的新手.我来自可爱的JS世界,那里的所有UI事件都是异步且非阻塞的.
有没有人有使用python或C的经验?
解决方法:
在这里您几乎可以找到答案:https://*.com/a/16037815/867349
简而言之,您可以在QML端使用WorkerScript,而在JavaScript / QML中完成的所有功能实际上都是随意的(但是很遗憾,我找不到删除/停止该单独的Worker线程的方法).
其他选择是使用Qt的QThread.在这里阅读有关Qt中的多线程的信息:Multithreading Technologies in Qt | QtDoc 5.3、Threading Basics | QtDoc 5.3和我最喜欢的有关Qt的书,这对您的情况非常有用:Advanced Qt Programming: Creating Great Software with C++ and Qt 4).然后将您的线程暴露给QML.在此处阅读有关将C类暴露给QML的信息:Integrating QML and C++ | QtQml 5.3,Defining QML Types from C++ | QtQml 5.3.