自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (11)
  • 收藏
  • 关注

转载 arm平台下char默认数据类型与-fsigned-char

有无符号的问题

2023-05-24 11:48:22 278

原创 Windows10下的TEB和PEB的分析

TEB:线程环境块(Thread Environment Block),PEB是进程环境块(Process Environment Block)。

2022-11-15 10:48:53 1311

原创 Python在Windows中安装模块失败的解决方法

python在Windows安装模块遇到问题及解决方法

2022-09-25 22:02:22 1336

原创 Qt实现一个小工具 - 批量处理文件夹内文件名称追加或删除

核心代码实现如下(递归实现):void Widget::Recursion(const QString& strPath){ QList<QString> stDir; QString strName; if( strPath.isEmpty() ) { return; } QDir dir(strPath); QFileInfoList fInfoList = dir.entr

2022-03-10 20:09:57 457

原创 QDesktopServices常用用法 - 打开外部网页或文件(夹)

许多桌面环境提供的服务可供应用程序用于执行常见任务,例如打开网页,其方式既一致又考虑到用户的应用程序偏好。此类包含为这些服务提供简单接口的函数,这些接口指示它们是成功还是失败。openUrl() 函数用于打开位于外部应用程序中任意 URL 的文件。 对于与本地文件系统上的资源对应的 URL(其中 URL 方案为“文件”),将使用合适的应用程序打开文件; 否则,将使用 Web 浏览器来获取和显示文件。用户的桌面设置控制是否打开某些可执行文件类型进行浏览,或者是否执行它们。 一些桌面环境被配置为阻止用户执

2022-03-10 19:46:25 1583

原创 冒泡排序(C++版)

template <typename T> static void Bubble(T array[], int len, bool min2max = true) { bool Exchange = true; for(int i=0; (i<len) && Exchange; i++) { Exchange = false; .

2022-02-25 22:29:46 429

原创 插入排序法(C++版)

template <typename T> static void Insert(T array[], int len, bool min2max = true) { for(int i=1; i<len; i++) { T e = array[i]; int k = i; for(int j=i-1; (j>=0) &&.

2022-02-25 07:52:52 395

原创 选择排序法(C++版)

//选择排序法 template <typename T> static void Select(T array[], int len, bool min2max = true) { for(int i=0; i<len; i++) { int min = i; for(int j=i+1; j<len; j++) { .

2022-02-24 23:57:32 435

原创 字符串匹配算法KMP

生成部分匹配表 //生成子串的部分匹配表int* make_pmt(const char* p){ int len = strlen(p); int* ret = static_cast<int*>(malloc(sizeof(int) * len)); if( ret != nullptr ) { int ll = 0; ret[0] = 0; for(int i=1; ...

2022-02-24 23:45:15 171

原创 字符串拷贝函数strdup()

char *strdup(const char *s); 注:strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。字符串拷贝函数strdup()内部实现如下:char* __strdup(const char* s){ size_t len = strlen(s) + 1; void* ret = malloc(len); if(ret==nullptr) { return nullptr...

2022-02-16 23:30:26 655

原创 MySQL常用操作

1. 创建数据库和删除数据库--创建create database db_name;--删除drop database db_name;2. 显示数据库和使用数据库--显示数据库show databases;--使用数据库use db_name;3. 显示某个数据库中有几种表--显示几种表show tables;4. 下面主要讲解查询select,其它的比如更新update、插入insert、删除delete不讲解。a. 查询数据b. 条件查询.

2022-02-14 20:11:12 303

原创 MySQL安装教程

百度搜索mysql ,进入官网,按照如下图选择:然后选择MySQL Community Server,点击下载,如图所示:把压缩包解压到E盘中mysql文件夹中,设置环境变量,如图所示:以管理员权限启动cmd,执行如下命令:1.初始化命令并记住密码:mysqld --initialize --console2. 安装: mysqld install3. 启动服务:net start mysql4. 登录: mysql -uroot -p5. 修改密码:alte..

2022-02-12 20:24:24 559

原创 net start mysql 出现发生系统错误 2 解决方法

第一步:先进入mysql文件夹中bin里第二步:mysqld remove第三步:mysqld install第四步:net start mysql截图:

2022-02-12 20:05:15 3205 3

原创 QProgressDialog使用方法

#ifndef WIDGET_H#define WIDGET_H#include <QtWidgets/QWidget>#include <QProgressDialog>#include <QTimer>#include <QDebug>#include <QPushButton>class Widget : public QWidget{ Q_OBJECT QPushButton m_testBt.

2021-12-17 22:01:55 1744 2

原创 QStackedWidget和QTabBar组合使用方法

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QStackedWidget>#include <QTabBar>#include <QLabel>#include <QDebug>#include <QString>#include <QTextEdit>#include <QVBoxLayout>#include .

2021-12-17 15:10:03 428

原创 QStackedWidget和QListWidget组合使用方法

QStackedWidget 类提供了一堆小部件,其中一次只能看到一个小部件。QStackedWidget 可用于创建类似于 QTabWidget 提供的用户界面。 它是一个构建在 QStackedLayout 类之上的便捷布局小部件。#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QStackedWidget>#include <QLabel>#include <QDebu

2021-12-17 14:16:13 998

原创 QSplitter使用方法

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QSplitter>#include <QTextEdit>#include <QPlainTextEdit>#include <QPushButton>class Widget : public QWidget{ Q_OBJECT QSplitter m_MainSplitter; .

2021-12-17 10:03:30 108

原创 Qt常用容器遍历 - QList和QMap

QList遍历 QList<int> list; list << 1 << 2 << 3 << 4 << 5; qDebug() << "QList第一种遍历"; QList<int>::iterator it1 = list.begin(); for(; it1!=list.end(); ++it1) { qDe.

2021-12-16 20:26:15 7909 1

原创 C中十六进制字符串转十六进制数组

第一种方法:void Hexstr2ByteArray(){ char* str = "24240a0030104F550D0A"; int i = 0; char buf[256] = {0}; int j = 0; while(str[i]!=0) { sscanf(str+i, "%02X", buf+j); i+=2; j+=1; }}运行结果:第二种方法:char..

2021-12-07 09:22:47 1642

原创 Qt - 多线程与界面组件的通信

先上代码:#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>#include <QtCore/QObject>class MyThread : public QThread{ Q_OBJECTsignals: void uiSignal(QString msg); protected: void run(); public: explicit MyThread(

2021-12-01 20:47:37 489

原创 Qt中release打包发行命令windeployqt使用方法

把release版本编译生成的XXX.exe,单独放在一个新建一个文件夹,然后打开QT的命令终端Qt 5.12.12 (MinGW 7.3.0 32-bit),使用cd命令进入到新建的文件夹路径

2021-12-01 15:30:21 896

原创 Qt - 另一种创建线程的方法

#ifndef ANOTHERTHREAD_H#define ANOTHERTHREAD_H#include <QObject>#include <QThread>class AnotherThread : public QObject{ Q_OBJECT QThread m_thread;protected slots: void tmain();public: explicit AnotherThread(QObject *p.

2021-11-28 13:16:14 104

原创 Qt - 线程的生命周期问题

工程设计准则线程对象的生命周期 > 对应的线程生命周期同步型线程设计#ifndef SYNCTHREAD_H#define SYNCTHREAD_H#include <QThread>class SyncThread : public QThread{ Q_OBJECTprotected: void run();public: explicit SyncThread(QObject *parent =...

2021-11-28 10:34:32 501

原创 Qt - 信号与槽的连接方式

信号与槽的连接方式主要有以下5种方式:先看代码:#ifndef MYOBJECT_H#define MYOBJECT_H#include <QObject>class MyObject : public QObject{ Q_OBJECTpublic: explicit MyObject(QObject *parent = 0); signals: protected slots: void testSlot();}.

2021-11-27 23:45:22 1421

原创 Qt - 多线程中的信号与槽

先看代码和运行效果图,如下:#ifndef MYOBJECT_H#define MYOBJECT_H#include <QObject>class MyObject : public QObject{ Q_OBJECTpublic: explicit MyObject(QObject *parent = 0); protected slots: void getStarted(); void testSlot();};#end

2021-11-27 22:22:50 694

原创 Qt中银行家算法实现 - 多线程应用

算法策略 将资金优先借予资金需求较少的客户 应用场景 操作系统内核中的进程管理 数据库内核中的频繁事物管理 Qt中的算法实现方案 使用多线程机制模拟客户和银行 银行优先分配资源给最小需求的客户 当客户的资源需求无法满足的时候 收回已分配的资源 强制结束线程 代码实现:#include <QCoreApplication>#include <QThread>#include <QMutex>#include &lt

2021-11-25 23:55:16 417

原创 汽车诊断协议 - TP20CAN

2021-11-16 19:56:44 464

原创 汽车诊断协议 - KWP2000

KWP2000协议是最常用的通信协议之一,是属于OBDII标准协议的一种。KWP系统又称为关键字协议,因为这种协议在系统进入时,会涉及到关键字的校验而得名。下面从物理层特性、系统进入、帧结构等几个方面来介绍这种协议。物理层特性:通常采用10416BPS的波特率;空闲电平通常为12V;数据位格式为1+8+1,没有校验位。系统进入初始化:有两种初始化方式。第一种由设备先发送25ms的拉低电平,然后是25ms的高电平(空闲电平),然后再发送系统进入数据,系统进入数据通常为5个字节,ECU响应7个字节,完成系统

2021-11-16 19:44:56 1554

转载 汽车诊断协议 - CAN BUS协议

物理层特性:可分为单线CAN协议和双线CAN协议。单线CAN协议目前主要出现在GM车系里面,1号脚通讯,波特率为33.3K。双线CAN协议常见的波特率有500K(6/14)、250K(6/14)和125K(3/11),括号内为通讯脚位。单、双线CAN协议的命令交互格式基本一致。CAN-BUS通讯需要一个120欧的电阻。...

2021-11-16 19:29:23 1723

原创 QPainter使用总结

void Widget::paintEvent(QPaintEvent* event){ Q_UNUSED(event); //第一种 QPainter painter1(this); painter1.save();//保存绘制状态 painter1.setPen(Qt::blue); painter1.drawLine(QPoint(10, 10), QPoint(20, 20)); painter1.restore();/.

2021-11-08 20:28:05 98

原创 QPainter文本绘制

效果图:源码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QPainter>#include <QFontMetrics>#include <QPen>#include <QFont>#include <QTimer>class Widget : public QWidget{ Q_OBJECT uns.

2021-11-08 20:22:45 322

原创 QImage和QPixmap的使用

QImage 是为 I/O 以及直接像素访问和操作而设计和优化的,而 QPixmap 是为在屏幕上显示图像而设计和优化的。源码分享:void Widget::OnloadClicked(){ QFileDialog dialog(this); dialog.setAcceptMode(QFileDialog::AcceptOpen); dialog.setFileMode(QFileDialog::ExistingFile); if(..

2021-11-07 10:13:27 459

原创 简易图形绘制

源码分析int Widget::drawType(){ int ret = NONE; if(m_freeBtn.isChecked()) ret = FREE; if(m_lineBtn.isChecked()) ret = LINE; if(m_rectBtn.isChecked()) ret = RECT; if(m_ellipseBtn.isChecked()) ret = ELLIPSE; retu...

2021-11-07 08:16:26 45

原创 Qt基础图形绘制2

世界坐标:也叫逻辑坐标,使用的单位叫做逻辑单位,是人类世界中的坐标,如北京在地图中的坐标为(700km,899km)。这种坐标系统可大可小,大可至几万千米,小至几毫米,随你设置,该系统中坐标大小与显示设备大小无关。一般来说,逻辑坐标系在左下角,正X轴向又,正Y轴向上。窗口坐标:窗口坐标和世界坐标其实没有太大区别,都使用逻辑坐标进行表示。只是世界坐标和窗口坐标之间可能会存在一些变换,如平移、缩放、旋转、扭曲。设备坐标:也叫物理坐标,原点在左上角,正X轴向右,正Y轴向下,显示器中,坐标单位通常为像素,.

2021-11-04 07:33:39 477

原创 Qt基础图形绘制1

QPainter 类在小部件和其他绘画设备上执行低级绘画。QPainter 提供高度优化的功能来完成大多数绘图 GUI 程序所需的工作。 它可以绘制从简单线条到复杂形状(如馅饼和和弦)的所有内容。 它还可以绘制对齐的文本和像素图。 通常,它在“自然”坐标系中绘制,但它也可以进行视图和世界变换。 QPainter 可以对任何继承 QPaintDevice 类的对象进行操作。画家由 begin() 函数和接受 QPaintDevice 参数的构造函数激活。 end() 函数和析构函数将其停用。当pain.

2021-11-03 23:09:40 95

原创 Qt模型视图中委托深入分析

项目一:源码分析:void CustomizedItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const{ if(2 == index.column()) { const int Delta = 4; int x = option.rect.x() + Delta;

2021-10-31 10:09:14 242

原创 模型视图中的委托

QAbstractItemDelegate 类用于显示和编辑模型中的数据项。QAbstractItemDelegate 为模型/视图架构中的委托提供接口和通用功能。 委托在视图中显示单个项目,并处理模型数据的编辑。QAbstractItemDelegate 类是模型/视图类之一,是 Qt 模型/视图框架的一部分。要以自定义方式呈现项目,您必须实现paint() 和sizeHint()。 QItemDelegate 类为这些函数提供了默认实现; 如果您不需要自定义渲染,请改为对该类进行子类化。..

2021-10-30 21:09:10 79

原创 Qt模型视图 - 自定义模型类

创建个人信息类:#ifndef PERSONINFOMODEL_H#define PERSONINFOMODEL_H#include <QObject>#include <PersonInfo.h>#include <QList>#include <QTableView>#include <QStandardItemModel>#include <QStandardItem>class PersonInfoMo

2021-10-24 21:52:35 1409

原创 Qt中QFileSystemModel例子

QFileSystemModel 类为本地文件系统提供数据模型。此类提供对本地文件系统的访问,提供重命名和删除文件和目录以及创建新目录的功能。 在最简单的情况下,它可以与合适的显示小部件一起使用,作为浏览器或过滤器的一部分。源码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QFileSystemModel>#include <QTreeView>#include &l.

2021-10-24 16:03:22 1304

原创 Qt中QGridLayout使用方法

QGridLayout 类在网格中布置小部件。QGridLayout 获取可用的空间(通过其父布局或 parentWidget()),将其划分为行和列,并将其管理的每个小部件放入正确的单元格中。列和行的行为相同;我们将讨论列,但行也有等价的函数。每列都有一个最小宽度和一个拉伸因子。最小宽度是使用 setColumnMinimumWidth() 设置的最大宽度和该列中每个小部件的最小宽度。拉伸因子使用 setColumnStretch() 设置,并确定列将获得多少可用空间超过其必要的最小值。通常,使用

2021-10-23 09:30:44 7283 1

批量处理文件夹内大量文件名称删除或追加

批量处理文件夹内大量文件名称删除或追加

2022-03-10

Qt实现图片的加载和截屏.rar

加载并显示图片 以及 截屏显示

2021-11-07

Qt中简易图形绘制.rar

实现自由绘图、直线、矩形和椭圆四种绘图模式

2021-11-07

Sample010.rar

QPainter绘制一个正弦波形

2021-11-04

Painter.rar

随机绘制直线、矩形和椭圆

2021-11-03

Delegate Deep.rar

实现进度条、复选框等功能

2021-10-31

Delegate.rar

Qt中模型视图中的例子

2021-10-30

CustomsizedModel.rar

自己定义文本 读取文本内容 然后自己定义模型 然后在QtableView视图中显示 包含上下文菜单显示

2021-10-24

QToolButton.rar

QToolButton常用使用方法

2021-10-15

QGroupBox和QButtonGroup.rar

介绍QGroupBox和QButtonGroup等用法

2021-10-13

QSystemTrayIcon.rar

模仿常用软件中系统托盘常用的方式

2021-10-12

空空如也

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

TA关注的人

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