QT sha1

需求 最近需要在 qt 中使用 sha1 加密。 解决 Qt 中已经提供了解决方法,就是 QCryptographicHash, 可以直接调用他的 hash 静态方法,只需要注明是 QCryptographicHash::Sha1 即可。 void MainWindow::on_pushButton_clicked() { QString id = ui->lineEdit->text(); QByteArray sha1 = QCryptographicHash::hash(id.toLocal8Bit(), QCryptographicHash::Sha1); string str = ptz::ByteArray2HexString((uint8_t*)sha1.data(), sha1.size()); QString pwd = QString::fromStdString(str); qDebug() << "byte array: " << sha1 << ", string: " << pwd << Qt::endl; ui->textBrowser->setText(pwd); } 参考 QT MD4 MD5 Sha1等几种加密方式 QCryptographicHash Class Secure Hash Algorithm SHA-1

2023-06-18 · 1 min · 64 words · RamLife

QT 版本号

需求 最近需要在 qt 中获取版本号,根据版本号的不同,执行不同的语句。 解决 可以使用 QT_VERSION, QT_VERSION_STR, qVersion() 之类的。 #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) ... #endif 参考 Qt程序中获取Qt的版本号信息 Qt之判断版本号宏「QT_VERSION」和「QT_VERSION_CHECK」

2023-06-18 · 1 min · 19 words · RamLife

QT mvc mvp mvvm

需求 最新想了解下 qt 中使用 mvc。 解决 这个开源的6千行UI框架,能打败QT,MFC吗? - 小林通的回答 - 知乎 https://www.zhihu.com/question/66934513/answer/2809289366 四十六、QT应用开发之MVC架构(附案例) 【QT学习】实现MVC框架的简易封装(一文读懂) Model/View Programming Qt-MVC-MVVM Qt-MVC-MVVM / Qt_MVVM_Game 四十六、QT应用开发之MVC架构(附案例) 正确认识 MVC/MVP/MVVM MVVM / MVP and QML qt-mvvm代码分析 【QT学习】实现MVC框架的简易封装(一文读懂) 【QT学习】如何高效管理QT中的工程文件?(基于MVC框架的工程为例) Qt模型/视图框架(一) 参考

2023-06-15 · 1 min · 33 words · RamLife

mvc mvp mvvm 了解

需求 最新希望了解一些 mvc, mvp, mvvm 之类的内容. 解决 大概看了一些资料,有了一个初步的认识。 mvp model 层里面包含了所有和数据相关处理的内容,包括本地文件,数据库,网络数据等等,所有的数据都在 model。 model 提供相关的结构给外部调用. view 层里面就是所有的显示相关了,也提供相关的接口。 presenter 层就是居中调节,view 里面操作了什么, presenter 就对应的去调用 model 的接口。基本就是一个转接的作用。这样可以方便, model 和 view 解耦。 mvp 最大的问题,就是接口太多了,为了解耦,太冗余了。当然好处是,接口多,方便测试。 可以参考, google 提供的 architecture-samples,里面可以看 java 的代码,在 2019-01-29, ebbdd9ec6e5fdece755783ea149f4acd0e6530bc 这个提交,可以看到 todo-mvp. 链接是: https://github.com/android/architecture-samples 先整理了一部分资料,都后续有时间详细看看。 https://juejin.cn/post/7110885291946147876 https://zhuanlan.zhihu.com/p/59814282 https://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html https://juejin.cn/post/6901200799242649607 参考 Model-View-Presenter(MVP) MVP学习 Android MVP 架构二 Presenter与Model

2023-06-15 · 1 min · 53 words · RamLife

反射介绍

需求 最新希望了解一些反射相关内容 解决 Java 中的反射是靠 每个类中包含的 Class 来获取类的信息。 反射 编程语言中的反射机制 参考

2023-06-15 · 1 min · 11 words · RamLife

嵌入式软件单元测试

需求 以前自己是在每个模块的下面简单写个测试函数,用于模块的功能测试,最新想学习下嵌入式的单元测试。 解决 先汇总一下资料,等有时间跑一个 demo 起来看看结果. https://blog.csdn.net/ibanezjem/article/details/104891204 https://blog.csdn.net/zhengyangliu123/article/details/79486383 https://mp.weixin.qq.com/s/foD7rxvCXudzbUF-Hp84VA https://www.eet-china.com/mp/a35487.html https://www.zhihu.com/question/19755217 https://www.cnblogs.com/pingwen/p/9206406.html https://zhuanlan.zhihu.com/p/67162814 https://zhuanlan.zhihu.com/p/67164631 https://zhuanlan.zhihu.com/p/67165611 https://zhuanlan.zhihu.com/p/67199540 https://blog.csdn.net/zhengnianli/article/details/104036227 https://blog.csdn.net/ybhuangfugui/article/details/131027470 https://blog.csdn.net/liao20081228/article/details/76984975 参考

2023-06-15 · 1 min · 20 words · RamLife

QT 单元测试

需求 最近学习了 android 上面的单元测试之后,也考虑在 Qt 上进行单元测试。 解决 主要是 Qtest, 先汇总一些资料,等有时间搞几个测试 demo,再慢慢引入. https://zhuanlan.zhihu.com/p/39376945 https://blog.csdn.net/yizhou2010/article/details/78272505 https://zhuanlan.zhihu.com/p/412497880 https://www.cnblogs.com/im18620660608/p/17157968.html https://blog.csdn.net/u011942101/article/details/124074075 https://blog.csdn.net/ipfpm/article/details/109852908 https://www.cnblogs.com/lvdongjie/p/10599650.html https://blog.csdn.net/yang1fei2/article/details/125121777 https://zhuanlan.zhihu.com/p/40901748 http://www.cleartechfei.com/2022/06/qt%e9%a1%b9%e7%9b%ae%e6%90%ad%e5%bb%ba%e5%ae%8c%e6%95%b4%e7%9a%84%e5%8d%95%e5%85%83%e6%b5%8b%e8%af%95%e6%a1%86%e6%9e%b6/ 参考

2023-06-15 · 1 min · 22 words · RamLife

c++ 函数参数中是引用时,const 位置

需求 今天编译时,报错: =error: binding reference of type ‘CalibrationVoltage::RefFloat_kParamNum’ {aka ‘float (&)[3]’} to ‘const float [3]’ discards qualifiers=, 我觉得很奇怪,我明明加了 const 了,为啥还是说没有 const 呢? using RefFloat_kParamNum = float (&) [kParamNum]; RefFloat_kChannelNum_kParamNum CalibrateParam(const RefFloat_kParamNum output); 解决 怀疑是因为 const 和 using 一起作用的结果,所以稍微修改了一下,就 ok 了。根本原因要等后续再查了。 using RefFloat_const_kParamNum = const float (&) [kParamNum]; RefFloat_kChannelNum_kParamNum CalibrateParam(RefFloat_const_kParamNum output); 参考 C++编译出现binding ‘const string {aka const std::__cxx11::basic_string<char>}’ to reference of type ‘std error: binding reference of type int& to const int discards qualifiers...

2023-06-09 · 1 min · 74 words · RamLife

printf 打印指针类型

需求 在 32位 和 64位的平台上,指针类型占用的字节数不一样,使用 %d 直接打印指针对应的地址老是提示类型不对,有没有什么好方法呢? 解决 printf 其实专门有一个和指针类型对应的占位符,就是 %p. 参考 C学习:%p和%x、%lx、%hx、%llx区别辨析

2023-05-27 · 1 min · 13 words · RamLife

QT dialog 关闭时释放资源

需求 需要在 QDialog 关闭的时候,自动释放掉资源。 解决 默认情况下, QDialog 占用的内存会在 MainWindow 关闭后释放,如果想要在 QDialog 本身关闭的时候就释放,需要通过 setAttribute 方法配置 Qt::WA_DeleteOnClose 选项. CurrentGetConfigForm * current_get_config_form = nullptr; void MainWindow::on_pushButton_current_get_config_clicked() { if (!GetConfig()) return; if (current_get_config_form == nullptr) current_get_config_form = new CurrentGetConfigForm(nullptr, port_, version_, address_); current_get_config_form->setAttribute(Qt::WA_ShowModal, true); current_get_config_form->setAttribute(Qt::WA_DeleteOnClose, true); current_get_config_form->show(); //QEventLoop loop; //loop.exec(); qDebug() << "MainWindow::on_pushButton_current_get_config_clicked() end" << Qt::endl; current_get_config_form = nullptr; } 参考 Qt Dialog 内存管理问题:Dialog关闭时会自己释放自己吗?

2023-05-25 · 1 min · 60 words · RamLife