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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
错误:未定义对QQuickRectangle::QQuickRectangle(QQuickItem*)的引用 < >我想直接使用C++的Qt Quaster 2,而不使用那些能减慢应用程序的QML/JavaScript工具,但是在使用 QQuickRectangle < /C> >(矩形< /COD>时,使用QML)时,编译错误。_Qt_Qmake - Fatal编程技术网

错误:未定义对QQuickRectangle::QQuickRectangle(QQuickItem*)的引用 < >我想直接使用C++的Qt Quaster 2,而不使用那些能减慢应用程序的QML/JavaScript工具,但是在使用 QQuickRectangle < /C> >(矩形< /COD>时,使用QML)时,编译错误。

错误:未定义对QQuickRectangle::QQuickRectangle(QQuickItem*)的引用 < >我想直接使用C++的Qt Quaster 2,而不使用那些能减慢应用程序的QML/JavaScript工具,但是在使用 QQuickRectangle < /C> >(矩形< /COD>时,使用QML)时,编译错误。,qt,qmake,Qt,Qmake,在.pro文件中,我有:QT+=quick-quick-private-core-private-gui-private声明性private-qml-private 并在.cpp文件中#包括 我从源代码和命令nm-D/usr/local/Qt-5.5.0/lib/libQt5Quick.so.5 | grep“Rectangle” 没有打印任何与QQuickRectangle相关的内容,因此看起来它没有包含在共享库中,但我不知道为什么,因为QQuickRectangle.cpp存在于qt源代码中

.pro文件中,我有:
QT+=quick-quick-private-core-private-gui-private声明性private-qml-private

并在.cpp文件中#包括

我从源代码和命令
nm-D/usr/local/Qt-5.5.0/lib/libQt5Quick.so.5 | grep“Rectangle”

没有打印任何与
QQuickRectangle
相关的内容,因此看起来它没有包含在共享库中,但我不知道为什么,因为QQuickRectangle.cpp存在于qt源代码中,所以编译后应该包含在共享库中。

您不能这样做。您必须使用QML。QML主要是一些内存开销,它不会减慢你的应用程序,你仍然可以使用线程和C++来执行性能关键部分,QML仅仅是用于UI。@ dWrime:你不能直接使用Qt快速。事实上,我已经在这样做了,但是你需要使用私有头,这可能会导致与另一个Qt版本的兼容性问题,但我会保持我的Qt Quick fork与sync同步,所以这对我来说不是问题,我将有与Qt小部件类似的工作流程。对于大型复杂的应用程序,QML不是我所认为的方式,但Qt Quick的场景图令人惊讶。您尝试做的是非常落后的,任何效率提升都可能被缺点远远抵消。上次我检查时,没有人证明QML不适合大型复杂应用程序。在C++中,快速原型和动态化的优点是不可用的。总之,QML将花费您10-15MB的ram使用量。并且为您节省更多的时间和精力,这比ram要昂贵得多。CPU开销是存在的,但可以忽略不计。你仍然可以而且应该在C++中编写你的核心和关键部分。@ d驱动器:在QML中,你无法根据高度绘制出什么是可见的。如果我将在C++中实现项目资源管理器(数百个项目),那么我就可以限制根据可用的高度和项目高度来处理什么。另一件事是,我可以只使用一个QQuickItem实例,而不是每个项目的QQuickItem实例,并直接使用QSG节点在updatePaintNode中组装QSG树。实际上,我在邮件列表中发现QML不适用于大型桌面应用程序,Qt开发者说它适用于嵌入式设备上的应用程序。我会努力找到的。这根本不是真的。您可以将project explorer包装在模型中,使用库存或轻松创建自己的自定义视图,它只会渲染实际可见的内容,并将元素缓存在极端周围,以便在开始滚动时不会中途显示。我有一个项目,它以自定义树结构呈现数十万个节点,这些节点就像50个不同的UI嵌套在一起,运行得很好。他说,她说,人们说各种各样的东西,我自己不是一个巨大的QML球迷,但在使用两年后,我会说它是好的。