Fork Me Please ~
Doc文件夹中有答辩PPT和毕设说明书。
毕设答辩实录:https://www.bilibili.com/video/BV1ek4y1p7Bp/
语音提示:
极差统计:
数据保存为Xlsx表格:
实时拟合误差指示:
友好的界面设计:
测试结果:
基于Qt 5.14.2 GCC开发
- OpenGl(可选)
- Eigen-3.4.0
- QtXlsx-0.3.0(QXlsx对图表支持没QtXlsx良好)
其中 QtXlsx 又依赖 Perl(Linux自带,Windows可以安装 Strawberry Perl 或者 ActivePerl 解决)
- Linux :linuxdeployqt(需要安装)
- Windows:windeployqt(Qt自带)
可使用 Enigma Virtual Box 进一步封包
共用:
- Eigen:https://eigen.tuxfamily.org/index.php?title=Main_Page
- QtXlsx:https://github.com/dbzhang800/QtXlsxWriter
Windows:
- Strawberry Perl:https://strawberryperl.com
- Enigma Virtual Box:https://enigmaprotector.com/en/aboutvb.html
Linux:
QXlsx(不用编译也可以用的):
- https://www.cnblogs.com/ybqjymy/p/17244317.html
- https://www.codenong.com/cs106908387/
- https://www.bilibili.com/video/BV1Er4y1C78L/
OpenGl:
- Linux:https://blog.csdn.net/sinat_33896833/article/details/107362959
- Windows:https://blog.csdn.net/a6627651/article/details/10303869
linuxdeployqt:
-
InteractChart
这里面时间轴单位是毫秒(qint64),但是有除以1000转换为秒(double),要注意。 -
collectCounter
只有调用nextCollect()函数,才会有 collectCounter++
-
https://blog.csdn.net/zong596568821xp/article/details/78893360
在连接信号槽之前调用moveToThread,不需要处理connect的第五个参数,否则就显示声明用Qt::QueuedConnection来连接。
把线程的finished信号和object的deleteLater槽连接,这个信号槽必须连接,否则会内存泄漏connect(m_objThread,&QThread::finished,m_objThread,&QObject::deleteLater);
1、创建
TestObject* object = new TestObject;
QThread* thread = new QThread;
object->moveToThread(thread );
connect(thread,&QThread::finished,object,&TestObject::deleteLater); // 退出后释放TestObject对象资源
connect(thread,&QThread::finished,thread,&QThread::deleteLater); // 退出后释放QThread对象资源
2、退出
thread->quit(); // 也可以使用thread->exit(0);
thread->wait(); // wait函数是个阻塞的接口,意思是线程必须真的退出了,才会执行wait之后的语句,否则将会一直阻塞在这里,如果在界面上使用,需要保证线程中代码的合理性。
thread = nullptr;
object = nullptr;