自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (4)
  • 收藏
  • 关注

原创 Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

找到 Qt msvc-version.conf 文件的路径:C:\Qt\5.15.8\msvc2019\mkspecs\common\msvc-version.conf。顺利解决问题,顺便吐槽一下,这个Qt这个插件做的太恶心。

2022-10-26 16:34:44 1315

原创 atoi strcpy memmove strstr 系列函数实现

atoi strcpy memmove strstr 系列函数实现函数原型具体实现:面试的时候可能会被问到实现如下函数,必须流畅的写出来,bug Free~记录一下。函数原型#include <stdlib.h>int atoi(char * digital) #include <string.h>char *strcpy(char *dest, const char *src);void *memmove(void *dest, const void *src,

2022-04-24 18:21:16 720

原创 QMetaEnum::fromType : 将Enum作为字符串输出

项目中的错误码使用的是Enum类型,因此每次输出错误码为数字时,还需查看对应的错误类型,幸好Qt已经有QMetaEnum类,可以将Enum 输出为string,在看到错误提示时,一目了然。QMetaEnum ClassQMetaEnum::fromTypeenum class Reason : int { Failure = -1, Success = 0, Memory_unavailable = 1, Access_violation = 2, Parameter_value_inapp

2021-06-08 16:30:54 1240

原创 vector push_back()值传递到底啥意思?

The content of val is copied (or moved) to the new element.按照文档上的说明:如果传递的对象,push_back就是对象的副本,push_back后,在改变对象的值,将对vector 的副本对象不起作用。如果传递的是指针,push_back就是指针的副本,push_back后,通过指针改变对象的值,会影响到vector中的指针所指的对象的值。其实也还理解,毕竟vector仅仅保存的是指针的副本,指向的同样的对象。参考代码:#inclu.

2021-05-10 21:09:55 2669

原创 Linux 如何查看进程的线程数量?

如何查看进程的线程数?1> top , 然后 按 h , 即可显示线程的数量2> cat /proc/pid(进程号)/status

2021-03-31 17:15:47 330

原创 TSL SSL SSH Openssl Openssh 区别

SSL : secure sockets layer , 一种国际标准的身份认证与加密协议。 SSH: secure Shell. 加密的shell,基于SSL协议的用来替代telnet 协议,Openssl: ssl 协议的C语言开源实现Openssh: ssh 协议的C语言开源实现。TSL: TLS(传输层安全)是更为安全的升级版 SSL。由于 SSL 这一术语更为常用,因此我们仍然将我们的安全证书称作 SSL。...

2021-03-27 14:09:29 635

原创 openssl-1.1.1j Arm交叉编译

编译参数:./config no-shared no-asm no-bf no-cast no-idea no-hw no-rc5 no-md2 no-mdc2 no-dso no-shared no-zlib no-dtls no-psk no-srp --prefix=/opt/tools/openssl/build CROSS_COMPILE=arm-linux-gnueabihf-遇到的问题:unrecognized command line option ‘-m64’查找并删除 -m64

2021-03-22 11:22:44 335

原创 QML坑记 - ListView GridView

cacheBuffer 属性:此属性将会额外的在现实区域之外,加载并实例化delegate,delegate 的数量由delegate 的高度以及cacheBuffer 的大小决定。官方描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:cacheBuffer : intThis property determines whether delegates are retained outside the visib

2020-12-04 14:47:24 774

原创 QML 坑记 - RowLayout

RowLayoutRowLayout 坑1:RowLayout 坑1:此问题为我项目中遇到的问题记录,可能不具备普适性,特此说明。使用clip 属性会覆盖RowLayout的内容,界面一片空白。错误代码如下:Item { width: GridView.view.width height: 150 //clip: true //don't use the clip property when using the RowLayou

2020-12-01 14:17:37 1164

原创 QMake的里里外外

Undocumented QMakeJump to: navigation, searchContents1 Introduction2 Undocumented variables3 Custom tools3.1 Further Examples4 Config features4.1 Custom install config5 SUBDIRS projects6 Undocumented modes7 Undocumented functions7.1 Program flo

2020-11-25 20:09:50 853

原创 QML 磁盘缓冲文件 - The QML Disk Cache

当Qt App 加载一个QML文件或者一个javascript 文件时,QML引擎会将文件编译成字节码的形式,并运行它。这个编译过程是耗时的,而且后续的加载同样的文件也会产生同样的效果。为了优化这个步骤,QML引擎可以缓存该文件。它将字节码缓存到磁盘上的某个位置,具体位置由QStandardPaths::CacheLocation/qmlcache 决定。同样的你也可以在pro文件中指定CONFIG += qtquickcompiler ,它会将字节码预先编译出来,并集成到你的二进制文件中去,这样可加

2020-11-19 11:01:41 633

原创 Qt : QCommandLineParser 注意事项

QCommandLineParser注意事项:1.不支持可选项,例如 -i 不加内容The parser does not support optional values - if an option is set to require a value, one must be present. If such an option is placed last and has no value, the option will be treated as if it had not been spec

2020-11-11 21:39:36 639

原创 QString 转 char * ,const_cast 坑记

这个转换失败:const_cast<char*>(const char * const cp) 不能这么用QString g_strServerIP("90.0.0.1");qDebug()<<g_strServerIP.toStdString().c_str();//return const char * const//不能这么转换char *p = const_cast<char *>(g_strServerIP.toStdString().c_str());

2020-11-11 18:05:42 247

原创 KDiff3 merge conflict 窗口操作说明

KDiff3 工具用来比较文件的内容差异,当git merge 分支出现conflicts 时,可使用它帮忙解决冲突。四个窗口分别表示:A: Base 当前文件与将要合并文件的共同部分B:Local 当前分支的文件内容C:Remote 合并分支的文件内容Output : 合并后的新文件需要注意的是:只需要在Output窗口进行右键A B C 选择即可解决conflicts,并且有的已经帮你自动选择好了,可能情况下只需要你点击菜单栏的 unsolved conflicts,进行选择即可。

2020-11-10 17:37:35 1709

原创 QML 如何区分平台类型 例如:linux ,windows, wasm ...

QML 区分平台类型的属性:Qt.platform.osQML 获取可执行文件的路径:在cpp 文件中添加:view.rootContext()->setContextProperty("gAppPath", QApplication::applicationDirPath());然后在QML中使用gAppPath 即可。实例代码:property FontLoader digitFontLoader: FontLoader { id: digitalFont

2020-11-09 10:56:03 1077

转载 二进制兼容的那些事

二进制兼容二进制兼容是针对动态链接库而言的,如果你的源代码已经编译成为可执行文件了,其中你调用了一些动态库,后来你为这个动态库进行了更新,并替换掉原来的动态库了,如果程序在运行时正常运行没有任何问题,那么这个库就是二进制兼容(二进制边界正常)。源代码兼容如果换了库,但是无法运行,需要重新编译修改一些形参传递之类的问题,才能正常运行!二进制不兼容如果换了库,却怎么也无法运行,即使重新编译也无法运行,甚至编译不过,这就叫二进制不兼容(二进制混乱),其原因是因为动态库被经过修改,导致程序无法定位入口点,

2020-10-30 09:58:02 369

原创 Qt中为什么很少出现delete,Qt对象又是如何销毁的?

所有集成自QObject类的类,如果在new的时候指定了父亲,那么,在父对象被销毁时,会一级一级清理该父对象管理的所有对象。建议不要自己手动delete QObject对象。而例如直接在main函数中定义的顶级QObject对象,这是所有控件是父容器,因此没有父对象,因此,最好是在代码中设置其属性为: setAttribute(Qt::WA_DeleteOnClose);这样,当该顶级父容器被close的时候,会自动销毁。或者将其定义为非指针类型变量。如果在程序某个功能中new的QObject对象没有父

2020-10-27 15:10:53 789

原创 DLL 文件调用的2种方式

一个共享库导出给用户使用的类,符号,函数等都需要使用宏Q_DECL_EXPORT来定义导出,一个使用共享库的应用程序需要通过定义Q_DECL_IMPORT 导入共享库里的可用对象。WIN32 平台下的DLL使用MSVC编译,编译后会生成*.dll 与*.lib 两个文件,.dll 在程序运行时调用,.lib 在应用程序隐式调用动态链接库时使用。使用MinGW编译,编译后会生成*.a与*.lib两个文件,.a 在程序运行时调用,.lib在在应用程序隐式调用动态链接库时使用。动态库的调用方式:隐式链接

2020-10-25 20:32:50 3178

原创 嵌入式 linux 对时 TZ时区设置

date -R 查看系统时区date -s “2020-10-23 09:38:00” 设置系统时间hwclock [-r |–show] //read[-s |–hctosys] //rtc -> sys[-w|–systohc] //sys ->rtc[-t |–systz] //test[-l |–localtime] //read rtc[-u |–utc] //utc[-f |–rtc FILE]更改系统时区:在

2020-10-23 09:46:29 1151

原创 QML控件之 RowLayout

水平布局管理器:RowLayout 与之对应的是 ColumnLayout可以改变RowLayout 的如下四个属性,从而改变Item的位置: Layout.alignment: Qt.AlignBottom Layout.topMargin: 15 Layout.bottomMargin: -25 Layout.leftMargin:-5

2020-10-20 22:16:45 3927

原创 QML控件之 Repeater

有多个重复的控件时,使用Repeater 效果比较好,如下是代码示例以及运行效果Repeater { model: ListModel { ListElement { color4: "lightgreen";text4: qsTr("LL"); value4: "2"; } ListElement { color4: "mediumseagreen";text4:

2020-10-20 22:08:56 820

原创 字体后缀 ttf & ttc 的区别

先给出结论: 如果在嵌入式系统中使用字体文件,还是使用ttf吧,毕竟文件大小小很多。以下是区别:下载的字体一般是ttc或ttf格式的,系统显示这都是TrueType类型的字体。ttf格式的字体可以正常使用,但ttc的字体只有一些常用的汉字,而许多不常用的汉字就没有(选择字体以后依然以宋体显示)。两者的不同处是 TTC 档会含超过一种字型,例如繁体 Windows 的 Ming.ttc 就包含细明体及新细明体两种字型 (两款字型不同处只是英文固定间距),而 TTF 就只会含一种字型.TTC是几个TTF

2020-10-14 16:24:37 6021

原创 shell查找并删除 “Widgets” 字段

linux shell 三剑客 (awk sed grep)删除命令 :d命令sed -i ‘/Widgets/d’ qt-feature-dialog-widget-removed //删除Widgets的行sed -i ‘/Dialogs/d’ qt-feature-dialog-widget-removed //删除Dialogs的行重定向到文件:cat aa.txt >> out 2>&1 (正确输出以及错误输出全部输出到out文件)具体使用待以后用到

2020-08-28 15:44:51 291

原创 gcc内置宏定义查看命令

g++ -posix -E -dM -< /dev/null

2020-08-26 20:59:49 411

原创 Qt QML signal slots

C++的中的信号与槽使用Qt5 的C++ 在头文件中 signal and slots 声明如下:signals: void signal1xxx(); void signal2xxx();slots: void slots1(); void slots2();信号与槽的链接必须使用connect 函数将其关联。QObject::connect(sender,signal,receiver,slot)QML 中的信号与槽在QML文件中,定义与使用如下:import Qt

2020-07-29 18:09:03 384

原创 Choosing the Correct Integration Method Between C++ and QML

To quickly determine which integration method is appropriate for your situation, the following flowchart can be used:

2020-07-27 16:27:38 134

原创 To Generate Qt Documentation:

// qtdoc READMETo Generate Qt Documentation:qtdoc contains the main Qt Reference Documentation, which includesoverviews, Qt topics, and examples not specific to any Qt module.Theconfiguration files are located in qtdoc/doc/config and the articles inq

2020-07-21 21:26:29 229

原创 plugin cannot be loaded for module “QtQuick.Controls“: Cannot load library

环境:vs2019 + Qt5.15.0 + Win10使用命令行终端:windeployqt app.exe 的形式部署QML的程序后,再将qml目录全部拷贝到app.exe 目录下,双击执行程序,出现如下错误:qrc:/main.qml:2:1: plugin cannot be loaded for module “QtQuick.Controls”: Cannot load library C:\Users\sesa547092\Desktop\hmi_rmd_vs2019\qml\QtQui

2020-07-14 20:47:46 5069

原创 QUdpSocket 编程注意事项

概念:UDP是无连接的用户数据报协议,不能保证数据的全部被对方收到。发送端,接收端数据收发流程:发送端示例代码:QUdpSocket *udpSocket = new QUdpSocket(this);QByteArray datagram = "UDP Datagram message ";udpSocket->writeDatagram(datagram, QHostAddress("169.254.254.11"), 36529);接收端示例代码: void Server::i

2020-07-10 11:56:37 783

原创 QML Object 自定义的QML组件,首字母必须大写

A QML object type is a type from which a QML object can be instantiated.In syntactic terms, a QML object type is one which can be used to declare an object by specifying the type name followed by a set of curly braces that encompasses the attributes of th

2020-05-26 11:02:31 637

原创 QML 后缀 .ui.qml 与 .qml 文件的区别

参考Qt Assistantqthelp://org.qt-project.qtqml.5128/qtqml/qtqml-index.htmlSince Qt 5.4, a document can also have the file extension “.ui.qml”. The QML engine handles these files like standard .qml files and ignores the .ui part of the extension. Qt Creator

2020-05-26 10:38:54 3588

原创 编码速度练习网站-coding speed practice

To be a coder and To be a SpeedCoder在平时的软件开发中,虽然说代码的正确性很重要,但是如果你使用的还是一阳指编码,那也太对不起软件开发这个让我们有吃饭的职业了,现在干啥都讲究的是看起来专业的样子。下面推荐几个练习编码速度的网站:1:纯指法的练习网站:https://www.typingstudy.com/2:根据实际代码进行练习(如果敲错键,会停在错误的位置,不会继续)https://typing.io/3:可以练习实际的软件源代码(可以看到对应的键盘

2020-05-18 20:53:22 11224 2

原创 SOLID设计原则之LSP ---里氏替换与多态有何区别?

LSP定义:子类对象(object of subtype/derived class)能够替换程序(program)中父类对象(object of base/parent class)出现的任何地方,并且保证原来程序的逻辑行为(behavior)不变及正确性不被破坏。其实还是对扩展开放,对修改关闭。LSP与多态的区别?多态是面向对象编程的一大特性,也是面向对象编程的一种语法,是代码实现的一种思路。LSP是一种设计原则,用来指导继承关系中子类该如何设计,子类的设计要保证在替换父类的时候,不改变原有程

2020-05-08 22:26:28 475

原创 嵌入式GUI 对比

自己总结的嵌入式GUI的对比,总结起来还是Qt 最强大,Peg Pro 使用了一段时间,小巧灵活,做复杂的界面设计时会比较吃力。其他没用过,根据网上的资料自己理解的。OK, that’s all...

2020-04-28 09:11:54 831

原创 程序能正常输出 Hello World! 吗?

看到一个有趣的C++程序,加强理解析构函数的作用:程序结束时会自动调用析构函数来删除本身,如果在人为的调用delete this,会造成递归调用,直到程序的栈溢出。因此是看不到我们熟悉的“Hello World!" 滴!顺便把结果页贴出来,程序递归调用了32374次后就栈就崩了。OK,结束!#include <iostream>using namespace std;cl...

2020-04-23 21:41:07 178

原创 Qt4 截图并传输图片数据

QImage 图片操作项目背景图片的保存QImage 旋转[QPixmap 与 QImage 使用场景](https://blog.csdn.net/liunanya/article/details/89684204)QPixmap 与 QImage 相互转换QImage 格式转换完成代码效果图项目背景项目中需要将Qt GUI的显示的当前图像转换成二进制文件发送给HMI板,并通过HMI板上的...

2019-09-11 20:44:57 342

原创 自定义String 类的实现

自定义String类时,希望输出其内容,于是添加了&amp;amp;amp;lt;&amp;amp;amp;lt;函数,总是出错。原来是没有进行友元声明。总结:输出重载&amp;amp;amp;lt;&amp;amp;amp;lt;操作符;可以使用成员函数,也可是使用友元函数,但函数友元函数使用上方便一些。因此***输入输出运算符一般重载为友元函数***。class String {public: String(const char * str = NULL

2019-01-22 22:46:02 1196

原创 实现1个函数,将hex字节流转换为string.例如0xff,0x5a转换为 "ff5a".

题目:实现1个函数,将hex字节流转换为string.例如0xff,0x5a转换为 &quot;ff5a&quot;.#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;#include &amp;lt;sstream&amp;gt;using namespace std;string hex2sting(unsigned char *p, int len)

2019-01-21 22:34:58 721

原创 vs2017+qt5.12 未将对象应用设置到对象的实例问题 -解决方法

环境:Win7 + VS2017 + Qt5.12使用VS2017的 Qt VS Tools 打开Qt Example下的pro文件时出现如下错误提示:查看.qmake.stash 文件如下:QMAKE_CXX.QMAKE_MSC_VER = 1200 这个配置问题的根源经过一天的艰难排查,终于找到解决方法,经历了从一脸懵逼到豁然开朗的心路历程。如果你也遇到了同样的问题,那就恭喜...

2018-12-25 11:39:56 10560 5

原创 QLineEdit setText函数导致程序crash的问题解决

很早在程序代码中有个bug,不明原因的崩溃,分析是程序中的指针引起的,查找了很长的时间,没找到,问题依旧。基于此问题出现的频率很低,就此搁浅。 今天偶然在仿真程序是复现了此问题,还定位了调用堆栈,经过一番努力终于解决此大bug。问题:我的问题与这个基本描述基本相同,参考链接如下:Fast changing QLineEdit crashing the applicationhttps:/...

2018-12-13 19:50:08 4639 2

可自行修改UDP监听端口,显示UDP报文内容

可自行修改UDP监听端口,显示UDP报文内容

2020-07-10

libgphoto2

libgphoto2源代码开发包,使用了libusb开发包,使用libusb开发的可是参考一下。

2014-05-15

WinUSB转换工具-zadig_2.1.0.exe

WinUSB转换工具,可以在windows下进行驱动的转换,开发自己的USB设备驱动

2014-05-15

U盘扫描文件

读出u盘内的文件,并将文件以列表显示,java写的代码。

2014-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除