大淘客网站如何做制作,乌镇网站开发文档,网站建设设计目的,拼团系统开发【QT 5 相关实验-示波器-学习笔记-示波器组件练习与使用总结】1、概述2、实验环境3、参考资料-致谢4、自我提升实验效果视频演示5、代码练习-学习后拆解-实验步骤#xff08;1#xff09;头文件部分-mwaveview.h#xff08;2#xff09;cpp文件部分-mwav…
【QT 5 相关实验-示波器-学习笔记-示波器组件练习与使用总结】1、概述2、实验环境3、参考资料-致谢4、自我提升实验效果视频演示5、代码练习-学习后拆解-实验步骤1头文件部分-mwaveview.h2cpp文件部分-mwaveview.cpp3使用部分-mainwindow.cpp6、提升与优化部分讲解1设置滑动条可以手动控制绘图更有掌控感2示波器界面随着整个外框变化。3默认选中问题。7、实验样例代码8、实验细节-其它问题4没图像问题。5程序异常关闭问题9、总结1、概述
最近因为要使用QT写个带类似示波器的界面在上网找了相关资料后质量其实有些参差不齐的有的看的云里雾里的有的也只是贴出来代码真正执行起来时对于我这种新手来说还是有点莫不到头脑的找到一个写的蛮不错的学习手敲了一遍并且做了一些优化。
因为仿照表盘排版结构很多话都是相似这里不多说什么了。
自己写文章习惯性将所有步骤罗列将细节说明也是因为整个流程大量细节只要按照步骤来一般能达到效果但是如果你是针对某个问题感兴趣那么整篇文章对你来说文字又有点多真是难以取舍文字应该写多写少啊~~
2、实验环境
实验环境还是挺重要的因为有时候在你电脑上能运行的东西在别人的电脑就不一定能运行这一部分的原因就可能是实验版本不一样。 系统环境window环境 QT软件版本qt 5.14.2
3、参考资料-致谢
1上上周刚刚练习完的代码这位博主写的不多但是跟着练习完代码后觉得效果挺不错我也是照着他这份代码进行练习的这里肯定要说下的也是对其敬意。 参考连接https://blog.csdn.net/qq_38190041/article/details/118856767 4、自我提升实验效果
自己跟着代码练习一遍然后再输出出来通过自己理解复制了一遍示波器既然跟着学习总是要有些提高的我们用这个东西还是希望当它是一个组件的装在我们自己的qt工程里遇到了不少问题我做了些优化这里的提升主要是移植后优化提升与一些问题解决办法并且尽量说清楚操作步骤。
1设置滑动条可以手动控制绘图更有掌控感 2示波器界面随着整个外壳变化。 3默认选中问题。 4没图像问题。 5程序异常关闭问题
实验效果如下
视频演示
演示链接https://live.csdn.net/v/276851?spm1001.2014.3001.5501 示波器延时5、代码练习-学习后拆解-实验步骤
1头文件部分-“mwaveview.h”
如下图是文件mwaveview.h,这个文件内都是一些声明定义和函数说明让我们大致知道有哪些函数。
2cpp文件部分-“mwaveview.cpp”
这里主要是一些函数具体实现了在构造函数里进行绘画图标而其它函数主要是加入线段。
3使用部分-“mainwindow.cpp”
这部分主要是一些功能使用以及波形绘制函数比如设置波形停止以及放大倍数等。 6、提升与优化部分讲解
1设置滑动条可以手动控制绘图更有掌控感
这里为了能够自己控制波形尝试加入一个滑动条上下滑动就可以控制通道0的线段进行上下动从而达到自己控制效果。
2示波器界面随着整个外框变化。
在实际应用过程中发现”参照资料“博主的样例示波器是随着整个界面大小变动的所以对这部分进行优化也是恰巧上周刚刚弄完仪表盘会了点提升类发现提升类还真是个好的方式自己理解列出下面几条。
1. 某个控件提升类后这个控件继承了类所有实现函数。 2. 多个控件都提升相同类的话通过这个控件直接控制控件。 3. 一些布好局的控件通过提升类的控件这个提升类控件也随着布局变化。
上述说的大概什么意思呢直接用样例来举例就明白了。
1如下图所示按照参照资料之前写法需要声明一个示波器对象并且所有功能直接调用对象的方法现在因为控件提升类了所以我直接使用类似 ui-widget- 这样的方式就可以同时界面随着改变。 如下为博主的代码样例对比。 2因为我就弄了一个示波器这里不存在两个提升类想了解不同控件都相同提升类请去找标盘文章看看。
【QT 5 相关实验-仪表盘-学习笔记-表盘组件练习与使用总结】
3另外就是因为提升类随着外框变动这个问题只要在ui文件里设置一下就可以。 这里做个对比我设置了提升类后拉动外框内部示波器也会变化以下为我的样例。
这里是运行博主样例可能博主没想到这个细节而已我这里做了些优化。
3默认选中问题。
这块说明一种实现方式通过代码设定如下图。 7、实验样例代码
样例代码https://download.csdn.net/download/qq_22146161/87459613
8、实验细节-其它问题
4没图像问题。
毕竟是自己手动敲的代码照葫芦画瓢碰到了两次就是不出图形都是代码没敲对或者代码位置没对。
1第一次就少敲了一行代码说啥也不出后来发现是在绘图里少了一行. (2)第一次是在我手动练习敲一遍代码过程中而第二次不出图像实在移植到自己工程里的时候发现有不出图形后来一条条对发现就是因为函数放错了位置如下图函数开始没放到这下面结果也不出图。
5程序异常关闭问题
这个算是老问题当时提升类了应该都用控件来调用方法的但是忘记删除原有类了只删除了初始化new,因为mwaveview.h里声明了一点控件就崩了如下图所示并且qt也不会给你报这个问题。
9、总结
也正是因为自己手敲的出问题也能自己定位了自己也懂一些东西明白构成知道去哪查要是完全不练习下拿过来就用不出问题还好出了问题都不知道查。
当我们觉得一份组件好用的时候并将组件嵌入到自己工程内一定要回来练习下这像是欠的债一样只有内会了练习了它才会成为你的你也才能提升。