进程间通信:管道
一、非命名管道非命名管道适用于父子进程之间通信。
12345678910111213141516171819202122232425262728293031323334353637383940414243#include <string.h>#include <sys/types.h>int main(){ pid_t result; int r_num; int pipe_fd[2]; char buf_r[100],buf_w[100]; memset(buf_r,0,sizeof(buf_r)); if(pipe(pipe_fd)<0) { ...
Qt布局不生效
描述:
在qt designer 上使用布局控件后,实际未生效,在对象查看器中发现 centralwidget 被禁用。
现象:在 Designer 的对象查看器中可以看到,布局控件被打了红色表示忽略的标记。而在主设计区中网格布局控件未生效。
版本:QT5.9
原因:centralwidget 需要设置布局。
方法:
在主设计区窗口空白处右击,选择鼠标菜单下面的 layout 中的一种即可。
或者在对象查看器中右击 MainWindow,选择 layout 中的一个。
Qt:cmake项目配置
1.添加SQL支持
添加组件
添加 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Sql REQUIRED)
或 find_package(Qt5 REQUIRED COMPONENTS Core Quick Sql)
添加库
在target_link_libraries中添加Qt${QT_VERSION_MAJOR}::Sql
2.添加资源文件本篇文章主要作为备份。
来源:博客https://blog.csdn.net/baidu_35557785/article/details/5 ...
Qt:创建应用程序插件
资料:Qt Creator快速入门
创建应用程序插件创建一个插件时,要先创建一个接口,接口就是一个类,它只包含纯虚函数。插件类要继承自该接口。插件类存储在一个共享库中,因此可以在应用程序运行时进行加载。
创建一个插件包括以下几步:
定义一个插件类,它需要同时继承自 QObject 类和该插件所提供的功能对应的接口类;
使用 Q_INTERFACES() 宏在 Qt 的元对象系统中注册该接口;
使用 Q_PLUGIN_METADATA() 宏导出该插件;
使用合适的 .pro 文件构建该插件;
使用一个应用程序可以通过插件进行扩展要进行以下几步:
定义一组接口(只有纯虚函数的抽象类);
使 ...
Qt:创建QtDesigner自定义部件
Qt Designer 基于插件的架构使得它可以使用用户设计或者第三方提供的自定义部件,就像使用标准的 Qt 部件一样。自定义部件中的所有特性在 Qt Designer 中都是可用的,这包含了部件属性、信号和槽等。
创建项目。新建项目,模板选择 “Other Project” 分类中的 “Qt Custom Designer Widget”,项目名称定位 mydesigner,控件类改为 MyDesign,然后在右侧指定图标文件的路径(不指定的话使用 Qt 默认图标),其他选项保持默认。后面步骤全部保持默认直到完成项目的创建。
注意,在创建项目,选择编译 kit 时,选择 64位 msvc2 ...
阿里云服务器故障
2021-11-23,今日在拷贝文件准备搭建测试服务器时,突然发生无法登录网站的情况。
详情:
准备搭建测试服务器,因此从原服务器上拷贝一份文件,原服务器上的程序同时在运行中。
拷贝的时候,对文件夹打包压缩,有些文件提示正在被其它程序使用,一般是日志文件,忽视掉继续压缩;
在拷贝过程中,删除了一些过期的日志文件;
由于嫌拷贝文件太慢,想着能不能通过网络传输。当时脑子一糊,寻思测试服务器会不会和当前服务器在一个局域网里,查看了内网 IP ,两个 IP 的最后一个字段一个 51,一个 52,当即认为两个服务器在同一个局域网里,大喜,于是开启网络共享,准备从局域网传输文件。然而开启后另一边一查 ...
函数参数及可变参
首先了解一个新知识,函数的参数列表的地址是顺序排列的,以下代码验证这一知识。
12345678910111213141516171819202122#include <stdio.h>void func1(int a, int b, int c){ printf("%d\n",a); printf("%d\n",*(&a+1)); printf("%d\n",*(&a+2));}void func2(int a, int b, int c){ print ...
OTA常用代码
在嵌入式开发中,使产品的软件能够更新升级是个很常见的需求,作为开发人员,能够快速熟练地实现该功能是基本能力。
一般当设备不具备直接获取完整的更新文件时,需要逐包获取更新文件,因此要设计专门的更新代码以实现此功能。
在此记录下OTA的常用升级代码,以备不时之需。
1.数据结构首先先来定义OTA需要的数据结构:
具有更新功能的软件,必须定义软件版本号,以下为一个参考:
123456789101112//version.h#ifndef __VERSION_H__#define __VERSION_H__#define PROJECT_ID 0x2A4B /**<eac ...
js浮点数处理
1.参考https://cloud.tencent.com/developer/ask/180535
2.正确示例12345678910111213141516171819202122const fnumb = Math.PI;const fstr = fnumb.toString();#浮点数转字节数组const buffer = new ArrayBuffer(4); //双精度为8const uf8 = new Uint8Array(buffer);const f32 = new Float32Array(buffer);f32[0] = fnumb;console.log(uf8) ...
Qt无法定位程序输入点
先背一遍Qt代码:1234567891011#include <QApplication>#include <QMainWindow>int main(int argc, char* argv[]){ QApplication app(argc, argv); QMainWindow mw; mw.show(); app.exec(); return 0;}
编译生成123qmake -project QT+=widgetsqmakemake
运行错误
出现以上问题,是动态链接库被污染了,某些程序中也包含Qt5Core ...