Qt项目demo:数据在ui界面上显示
Qt项目demo:数据在ui界面上显示,鼠标双击可弹窗显示具体信息1、RecData.pro1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#-------------------------------------------------## Project created by QtCreator 2022-07-23T15:24:27##-------------------------------------------------QT += core gui sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = RecDataTEMPLATE = app#TEMPLATE = lib#DEFINES += RECDATA_LIBRARY# The following define makes your compiler emit warnings if you use# any f ...
Qmake VS Cmake
Qmake VS Cmake==用cmake构建Qt工程(对比qmake进行学习)==
cmake vs qmake
qmake 是为 Qt 量身打造的,使用起来非常方便
cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能
内置的 out-of source 构建。(目前QtCreator为qmake也默认启用了该功能。参考:浅谈qmake之shadow build)
为各种平台和场景提供条件编译
可处理多个可执行文件情况,和很好配合 QtTest 工作
如何选择?
Using CMake to Build Qt Projects 一文中说:
对简单的Qt工程,采用 qmake
对复杂度超过 qmake 处理能力的,采用 cmake
尽管如此,如果简单Qt的工程都不知道怎么用 cmake 构建,复杂的工程,就更不知道如何使用 cmake 了。还是从简单的学起。
简单的 Qt 程序12345678#include <QtCore/QCoreApplication>#include <QtCore/QDeb ...
Qt: MinGW 与 MSVC的区别
Qt: MinGW与MSVC的区别Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是两种不同的编译器。
1、MSVC是指微软的VC编译器
2、MinGW是指是Minimalist GNU on Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你 在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方运行时库。
注意:
Qt版本:MSVC和MinGW版本的区别。
MSVC使用的是VC的编译器,这个版本主要用于PC开发;
MinGW版本使用MinGW编译器,主要用于跨平台开发。
两个版本的Qt配置方式完全不同。
因此在网上搜配置方法时候,要加上MSVC或者MinGW这样的关键字一块搜索。
网上大部分内容是关于MinGW版本的配置方法,我本地使用的是MSVC版本。
MSVC版本配置比较简单;==MinGW版本需要下载cmake自行编译opencv==。
捋一捋gcc/g++/MingW/MSVC与make/CMake的关系
捋一捋gcc/g++/MingW/MSVC与make/CMake的关系在学习的过程中,经常在各种编程环境配置中遇到诸如GNU的gcc/g++、LLVM的clang/clang++、Windows的Mingw/MSVC、还有CMake。
捋一捋这些名词之间的关系,这将有助于理解各种环境配置中的各种操作,并且能对程序运行本身有更为深入的理解。
老生常谈在开始之前我们先放一段Hello World:hello.c
1234567#include <stdio.h>int main(){ printf("Hello World"); return 0;}
然后就是一段老生常谈的描述了:
要想让这段代码在Linux上运行,我们需要使用GCC
预编译:将hello.c和stdio.h预编译为hello.i
编译:将hello.i编译为hello.s
汇编:将hello.s翻译为机器指令hello.o(.o目标文件)
链接:链接各种需要的库和其他目标文件(该hel ...
Mediapipe入门:搭建姿态检测模型并实时输出人体关节点3d坐标
Mediapipe入门——搭建姿态检测模型并实时输出人体关节点3d坐标一. 引言MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。在谷歌,一系列重要产品,如 YouTube、Google Lens、ARCore、Google Home 以及 Nest,都已深度整合了 MediaPipe。
MediaPipe大有用武之地,可以做物体检测、自拍分割、头发分割、人脸检测、手部检测、运动追踪,等等。基于此可以实现更高级的功能。
二. 怎么做根据官方文档自己尝试理解也有一些收获,在这里记录一下。
1、官方文档地址Mediapipe
2、实验环境
1234I.win10II. Pycharm2021III. Python3.8IV. mediapipe0.89
3、我需要检测人体骨架和手部,那么先构建这样的检测模型。根据官网的例子,mediapipe.solutions下有我们需要的解决方案,来看看。
1234import mediapipe as mpmp_holistic = mp.solutions.holistichelp(mp.sol ...
编程修养
编程修养
什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。
好的程序员应该有以下几方面的素质
有专研精神,勤学善问、举一反三
积极向上的态度,有创造性思维
与人积极交流沟通的能力,有团队精神
谦虚谨慎,戒骄戒燥
写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。
这些都是程序员的修养,这里我想谈谈”编程修养”,也就是上述中的第5点。
我觉得,如果我要了解一个作者,我会看他所写的小说,如果我要了解一个画家,我会看他所画的图画,如果我要了解一个工人,我会看他所做出来的产品,同样,如果我要了解一个程序员,我想首先我最想看的就是他的程序代码,程序代码可以看出一个程序员的素质和修养,程序就像一个作品,有素质有修养的程序员的作品必然是一图精美的图画,一首美妙的歌曲,一本赏心悦目的小说。
我看过许多程序,没有注释,没有缩进,胡乱命名的变量名,等等。
此类程序员,他们是在做创造性的工作吗?
不,完全就是在搞破坏,与其说是在编程,还不如说是 ...
行业万象:为什么互联网大厂一边裁员,又一边招人
为什么大厂们一边在疯狂裁员,一边又在大量招人?今年是特别魔幻的一年,一方面不断传出各个大厂大规模裁员的新闻,另一方面又可以看到某某大厂给应届生开出四五十万乃至更高的Offer消息。
真实在大厂工作过,十几年的互联网老兵告诉你事实。
大厂里面有很多的业务线,也有很多的部门,每个部门负责的都不一样,阿里不是只做淘宝,腾讯也不是只做微信,一个大厂有数百条业务线,有的赚钱,有的赔钱。但是通常赔钱的最多。
==通常大厂是这样玩的:==
上层领导看中了一个方向,比如说游戏是赚钱的,于是就大量开始招聘游戏岗位。
公司往这方面投钱,比如说一年投入1000万,然后制定一个目标,实现三年盈利。通过招聘,你顺利进入了他们的游戏业务线,成为大厂员工。
光环加顶,有些刚进入大厂的员工觉以为祖坟冒青烟了,但也可能冒黑烟。
因为公司业务线刚开辟,所以就大量招人,高层来赌这个业务三年后一定盈利。把人力,金钱,物力投入进去。至于高层哪来的那么大自信赌成功,说真的,他们也都是懵逼状态。
高层之间也内卷,总裁副总裁一大批,负责的业务都不同。
我在某厂做总监时,经常跟一些总裁开会讨论方 ...
C++ Learning 4
第十二章 类和动态内存分配动态内存和类C++在分配内存时的策略:==在运行时决定内存分配,而不是在编译时决定==。这样,可以根据程序的需要,而不是根据一系列严格的存储类型规则来使用内存。C++使用new和delete运算符来动态控制内存。
:ship:C++空指针
新关键字nullptr,用于表示空指针。
1str = nullptr; // C++11 null pointer notation
在构造函数中使用new时应注意的事项使用new初始化对象的指针成员时必须特别小心。具体来说:
如果在构造函数中使用new来初始化指针成员,则应在析构函数中使用delete。
new和delete必须相互兼容。new对应于delete,new[ ] 对应于delete[ ]。
如果有多个构造函数,则必须以相同的方式使用new,要么都带中括号,要么都不带。因为只有一个析构函数,所有的构造函数都必须与它兼容。然而,可以在一个构造函数中使用new初始化指针,而在另一个构造函数中将指针初始化为空(0或nullptr),这是因为delete(无论是带中括号 ...
Constructor
构造函数1、引入在c++的类中,构造函数是一种特殊的成员函数,在每次创建创建一个类的时候会默认调用构造函数进行初始化工作。
构造函数用来完成一些必要的初始化工作,有了构造函数之后,就无需再单独写初始化函数,并且也不必担心忘记调用初始化函数。
2、基本概念构造函数具有如下几个特点
名字与类名相同,可以有参数,但是不能有返回值(void也不行)
作用是对对象进行初始化工作,如给成员变量赋值等。
如果定义类时没有写构造函数,系统会生成一个默认的无参构造函数,默认构造函数没有参数,不做任何工作。
如果定义了构造函数,系统不再生成默认的无参构造函数
对象生成时构造函数自动调用,对象一旦生成,不能在其上再次执行构造函数
一个类可以有多个构造函数,为重载关系
3、默认无惨构造函数下面来看一个简单的例子。
123456789class Complex {//复数类private: double real, imag;//分别表示实部以及虚部public: void set(double r, double i) { real = r; imag = i; } ...
cstdlib库
C++:cstdlib 头文件详解header1<cstdlib> (stdlib.h)
C标准通用实用库
此标头定义了几个通用功能,包括动态内存管理,随机数生成,与环境的通信,整数算术,搜索,排序和转换。
函数String 转换
(function )
atof
转换 string -> double
atoi
转换 string -> integer
atol
转换 string -> long integer
atoll (C++11)
转换 string -> long long integer
strtod
转换 string -> double
strtof (C++11)
转换 string -> float
strtol
转换 string -> long integer
strtold (C++11)
转换string -> long double
strtoll (C++11)
转换 string -> long long integer
strtoul
转换 string -> u ...
