
OpenCV是一个开源的图像处理库,QML是Qt官方推出的一个描述性语言,QtMarkupLanguage,QtQuick也是Qt官方推出的一个技术框架,在开发嵌入式、动态触屏等时有一定的优势。
模块的作用:
打一个很简单的比方,QML就是Qt的HTML,C就是Qt的JavaScript,而QtQuick相当于一些已经集成好的开发框架,使开发应用程序变得更加简单省事。
OpenCV是一个基于C/C的开源图像处理库,和Qt本身没有太多关联,其主要是用于计算机视觉和图形开发,Qt的扩展应用OpenCV并不是每个应用程序都要用到,只是某些有特殊需求的应用程序可以更方便地使用Qt扩展的OpenCV应用。比如说用Qt开发一个软件,要使用人脸识别功能,就可以集成OpenCV来实现。
使用频率:
虽然说QML相当于HTML,C相当于JavaScript,但是还是有一定区别:所有的网页都是通过解析HTML渲染出的,JavaScript虽然可以动态改变网页,但是最终还是通过改变HTML来达到效果;QML、C的关系恰好反过来,在Qt中,C是“更加底层”的,QML使用更加简单的标记语言的语法来调用底层的C绘图支持API,从而提高程序开发的效率。
使用QML可以更快速、简捷地开发应用程序,在Qt中的使用频率也是很高的,不过这要根据特定开发人群、开发目标而定。有些开发者习惯直接使用C开发,而有些开发者更喜欢简单的QML,很多时候都是“用QML开发用户界面,用C开发业务逻辑”,但是用C开发用户界面的也不在少数。
QtQuick是一套开发框架,核心语言就是QML。
QtQuick的使用频率不低,从Qt的NewProject界面就可以看出,QtQuick是和Qt传统的CWidge平起平坐的(当然还有QtforPython等)。
OpenCV在不需要图形处理功能的情况下是不需要用到的,所以不怎么好说“使用频率”,因为这是针对特定的软件需求来的。
是否有必要学习:
QtQuick能够使应用程序开发更有效率,但是并不是开发一个程序必备的,能用QtQuick开发的,C肯定能够做出来,但是耗费时间、精力更多。在Qt开发工作这一块,掌握Qt的核心功能是必须的,而且这还远远不够。在招聘的时候肯定是考察应聘者对Qt各种技术和开发思想的理解和掌握情况,而QtQuick是官方推出的框架,掌握其开发方法应该是基本功。
QML开发的界面其实是采用的QGraphicsView那套架构,用QML开发界面的好处就在于开发周期短(前提是熟悉css),可移植性强(因为可以将其做成QML插件,甚至放到一个文件里面作为脚本便于其他程序加载,但前提时不需要过多地与其他非QML模块进行通信),还有就是QML的界面比较有质感……
QWidget的优点就是与其他非GUI模块交互很方便。
不需要用到Declarative模块里面的类。
首先我们看看官方提供的QtQuickControls 2x Tooltip Tooltip
效果是怎么样的
看起来还是挺好用的 也很方便 然后我们再看来看看特殊的情况
我们将窗体大小缩小后
很明显 Tooltip的文字描述长度超过窗体右边边界时 无法正常显示了
我们在看看边界的情况
正常关闭按钮的Tooltip:
上面两个问题的原因很简单, Tooltip继承于Popup, 不属于独立窗体
为此我决定自定义开发一个QtQuick方式的Tooltip
首先Tooltip应该是基于独立窗体的, 并且因为要考虑资源占用问题, 所以最好是单例模式, 就是说始终只存在一个ToolTip的实例
ToolTip有两大重要属性, 一是延时启动, 二是延时消失, 这两个当然是需要可设置的
同样, SilkQmlToolTip也需要有同样的功能
结果是预期的: 1秒显示 5秒隐藏 当然鼠标移开也是立即隐藏的
我们又在三峰驼演示程序里看看效果
关闭按钮的ToolTip可以在窗体外正常显示
三峰驼演示程序里的效果也是正常
访问三峰驼Qml控件大全
<img src=">
以上就是关于OpenCV_opencv毛星云全部的内容,包括:OpenCV_opencv毛星云、qml和qwigdet的效率比怎么样、QtQuick/Qml自定义控件(1)-ToolTip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)