- 博客(72)
- 资源 (22)
- 收藏
- 关注

原创 Qt完整项目--工控系统(可直接运行)
1、首先肯定是需要登录注册的。因为这个项目是没有连接数据库的。Username和Password都是存取在本地的txt文档中,不需要自己另外创建,运行注册的时候会代码创建txt文档。系统里面的内容也如同。注意:我们这边需要用QtCharts,这个需要Qt5.7版本以上安装的时候把那个QChart选项勾选上才能使用这个模块。有问题可以来私。2、登录进去后根据数据生成柱状图。柱状图cpp#include "maininterface.h"#include "ui_maininterface.h"
2020-12-29 11:53:46
11321
28

原创 H5商城网站
loginlogin.html<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Login</title> <link href="css/login.css" rel="stylesheet" /> </head> <body> <div class="welcome"> <p
2020-12-26 22:07:46
3007
9
原创 大工程下我们该怎么解决代码模块管理问题(程序员进阶必学)
热插件的概念就是动态加载动态库和卸载动态库,动态库也可以带界面,主要maui而不在dll里,其余的都可以放 dll 里,举个例子:你的动态库完全可以返回一个widget,c风格就是void*,你也完全可以继承widget,写一些虚函数,比如叫类A,动态库里面的界面类就继承类A,重写虚函数,假如是类B,类C等等,最后动态库可能就是返回类B的实例,类C的实例,主界面调用那个函数,就得到实例了,因为主界面也有类A的纯虚函数,所以这样主界面就可以操作动态库导出的界面了,根据虚函数去操作就可以。
2024-02-27 17:05:20
472
原创 CIE颜色空间LCh、Lab、XYZ-sRGB介绍与转换关系(包含源码)
LCh是由MATLAB计算出的数据,但是我所需要在Qt的q3dsurface绘制出这个切面,看了Qt官方Examples,墨西哥草帽算法的3D模型就是由XYZ组成的。所以我需要LCh->Lab->XYZ,这三步的转换。
2023-05-16 10:07:50
4655
原创 C++(Qt)读取.mat文件(可以读取多级变量)
全网最全C++读取.mat文件,从安装环境和配置环境变量,然后再到需要的SDK库,再到代码详细解读。需要源码或者有问题可以私up哈,新人作者希望一件三联滴
2023-05-15 21:22:16
2114
原创 LeetCode 盛最多水的容器
对O(n)的算法写一下自己的理解,一开始两个指针一个指向开头一个指向结尾,此时容器的底是最大的,接下来随着指针向内移动,会造成容器的底变小,在这种情况下想要让容器盛水变多,就只有在容器的高上下功夫。我们能够发现不管是左指针向右移动一位,还是右指针向左移动一位,容器的底都是一样的,都比原来减少了 1。这种情况下我们想要让指针移动后的容器面积增大,就要使移动后的容器的高尽量大,所以我们选择指针所指的高较小的那个指针进行移动,这样我们就保留了容器较高的那条边,放弃了较小的那条边,以获得有更高的边的机会。
2022-12-18 08:15:40
140
原创 C++刷题测试样例输入输出
此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。可以接收空格,cin.getline(char*,int,char),内有三个参数,第一个表示要接收的字符串,第二个表示接收字符个数,第三个表示结束字符。输入包括两个正整数a,b(1 ...
2022-08-10 12:53:07
2118
原创 进程、线程、携程三个概念傻傻分不清
进程是并发执行的程序在执行过程中分配和管理资源的基本单位,每一个进程都有自己的地址空间,即进程空间或(虚空间)进程空间的大小只与处理机的位数有关,一个16位处理机的进程空间大小为216,而32位处理机的进程空间处理机大小为232。进程至少有5种基本状态:初始态、执行态、等待状态、就绪状态、终止状态。线程在网络或多个用户环境下,一个服务器通常需要接受大量且不确定数量用户的请求,为每一个请求都创建一个进程显然是行不通的,—无论是从系统资源开销方面,或是响应用户请求的效率来看。因此,操作系统中线程的
2022-04-24 22:58:00
3988
3
原创 基于Qt环境下开发的日志log打印
声明:这log类是在Qt开发的,所以需要在Qt环境下才可以使用作用:在使用QtCreator调试的情况,日志可以在应用程序输出或者读写到指定的路径的txt里面1.把log.h 和 log.cpp放到程序里进去2.log_open("./XXX.log") [这一步会自动新建到这个路径下的txt,会输入到这个文本中]3.打印输出日志log_debug(""); [这个是需要是想输出变量值,QString需要转成char*类型]例如:log_debug(“strXXX: %s”, strXXX.
2022-02-24 19:28:15
2568
4
原创 C++ 获取当前所有应用程序
main.cpp#include "softinfo.h"#include <QApplication>#include <iostream>#include "softinfo.h"#include <iomanip>#include <string.h>#include <QDebug>using namespace std;int main(int argc, char *argv[]){ QApplicatio
2022-01-21 14:20:09
1419
原创 周末学习-String原理以及实现
String原理及实现string类是由模板类basic_string<class _CharT,class _traits,class _alloc>实例化生成的一个类。basic_tring是由_String_base继承而来的。typedef basic_string<char> string#pragma once#include<iostream>class String{private: char* data; //字符串内容 s
2021-11-06 16:48:48
161
原创 公共看门狗程序
概述一些重要的程序,必须让它一直跑着;而且还要时时关心它的状态——不能让它出现死锁现象。当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误。我们首要做的事是,把这个Bug揪出来。但如果时间紧迫,这个Bug又“飘忽不定”,那么,我们还是先写一个软件“看门狗”,暂时应一下急吧。“看门狗”的需求描述:“看门狗”的运行不出现界面窗口,具有一定的隐蔽性;定时判断目标进程是否运行在当前系统中,如果没有则启动目标进程;判断目标进程是否“没有响应”,如果是则终止目标进程;如果目标进程“没有响应”的次数超过一定的
2021-10-21 17:00:20
1104
原创 Qt 实现系统的(软)鼠标,(软)键盘,(软)滚轮
前言:工作需要,写了一个类似软键盘,软鼠标这种的形式。我把鼠标、键盘、滚轮的这些对应键值都封装成一个动态库。目的是为了实现我硬件鼠标的对应键值可以操控到安卓手机上,实现手机不单单只能用触摸,也可以通过我们的鼠标,键盘,滚轮来玩游戏,这也不是说像是市面上的模拟器,即便你在玩吃鸡,Tencent的后台系统依然会判断你是手机用户,所以跟你一起的用户理所当然的也是手机在玩。这样是不是就有点是开挂的存在了。废话不多说,开始撸代码。先上实现封装好鼠标键值的这个函数因为他是先获取到当前鼠标的一系列参数,然后通过规则
2021-09-30 16:29:08
521
1
原创 shell脚本指定安卓手机一键批量安装apk
程序员是懒出来的。。。#!/bin/bash #installApks.shecho '============= start install apk ============='apkDir=$1dev=$2path=""subDir=""cd $apkDirfunction readDir(){ cd $apkDir filelist=`ls $1` for file in $filelist do
2021-09-18 10:24:29
1435
原创 adb 获取apk和安装apk
记录一下下午工作遇到的问题。原因是,需要一台已经烧了安卓手机(下述称sub08)上的那些应用需要同样安装在其他许多台安卓手机上。所以为了节省时间,也为了可以百分百确定安装的是同样的apk包(打开应用是用apk来判定的)。所以需要先从sub08取出apk包。adb devices 发现有多台的设备。所以后面每次执行命令都需要指定到哪一台设备。 例如XXX -s sub08 XXX可能这台sub08的应用很多。所以我们可以直接百度搜索找到包名附上查看主流app包名的链接:https://www
2021-09-09 17:40:37
1104
原创 提升项目记录
购物网站系统实现目标移动互联网的全面普及使人们真正进入了在线购物的生活。尽管市场上部分购物网站已足够成熟,但仍没有全民普及。只要存在未普及的客户群体,新型的购物网站就仍有发展契机。对于购物网站来说,产品营销推广策略决定了新用户的加入,而购物网站的体验舒适度、智能推荐、产品价格决定了老用户的去留。本购物网站致力于利用大数据和AI技术构造出一套较为成熟的系统,实现细分领域智能推荐、全链路商品监控、智能搜索、“亲和力”交互等功能,让产品真正地懂客户,了解客户的喜好。本购物网站系统依据水平业务和垂直架构将系统分
2021-08-28 16:07:49
98
原创 C语言 文件加密器
***学习内容:文件的字节读写、文件的字符串读写、文件块读写、文件存取过程。1、原理的分析加密过程:解密过程:main.c#include<stdio.h>#include"fun.h"int main(int argc,char *argv[]){ while(1) { int cmd = 0; print_help(); scanf("%d", &cmd); if(cmd == 1) { char src_file[31]="
2021-08-06 10:46:03
417
原创 Ubuntu中安装KDE桌面
步骤1:sudo add-apt-repository ppa:kubuntu-ppa/backports //获取源步骤2:sudo apt-get update //更新源步骤3:sudo apt-get install kubuntu-desktop //安装kubuntu-desktop最后,需要切换桌面注销->进入选择用户桌面。这样就算安装好了KDE桌面。...
2021-06-28 16:34:44
1855
原创 为什么Qt会有 QT_BEGIN_NAMESPACE宏
为什么会有QT_BEGIN_NAMESPACE宏QT_BEGIN_NAMESPACE就是一个宏,以前Qt4是没有命名空间的,后来才加上去,编译Qt源码时会有选项,是否将这些类放到专用的Qt命名空间内,默认时没有的。这就出来问题了,为了统一,如果你的代码在默认没有Qt命令空间的SDK中编译,那你就不用在前面加上命令空间,反之则需要。为了屏蔽上面这个差异,使得你的代码能在这两种情况下都进行编译,Qt就提供了QT_BEGIN_NAMESPACE宏,这样开发者就省的自己来用程序或宏进行处理了。#define
2021-06-23 14:49:56
742
原创 Qt 轮播图实现(全网轮播图最详细注释讲解)
废话不多说,先上效果。然后这个我设置的是每3s他会自动往下一页滑动。最下面有几个另外做的小功能。这样可以使我们的需求写成活的。其实虽然看是个小项目,但要写好的话,代码量和架构也是有一定要求的。qwhadvertisingpage.h#ifndef QWHADVERTISINGPAGE_H#define QWHADVERTISINGPAGE_H#include <QWidget>#include <QPushButton>#include <QPaintEv
2021-06-07 16:43:52
3956
原创 AST抽象语法树
AST作用:首先来一个比较形象的,转载自:AST-抽象语法树,讲述了为什么需要讲源代码转化为AST,总结就是:AST不依赖于具体的文法,不依赖于语言的细节,我们将源代码转化为AST后,可以对AST做很多的操作,包括一些你想不到的操作,这些操作实现了各种各样形形色色的功能,给你带进一个不一样的世界。抽象语法树简介(一)简介抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示
2021-04-28 19:13:15
518
2
原创 Qt Model/View(模型/视图)--笔记
简介:Model/View (模型/试图) 结构是Qt中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口。GUI应用程序的一个很重要的功能是由用户在界面上编辑和修改数据,典型的如数据库应用程序,数据库应用程序中,用户在界面上执行各种操作,实际上是修改了界面组件所关联的数据库内的数据。将界面组件与所编辑的数据分离开来,又通过数据源的方式连接起来,是处理界面与数据的一种较好的方式。Qt使用Model/View 结构来处理这种关系,M
2021-04-23 16:37:22
1058
原创 C++ 数组的替代品(vector 和 array)
模板类 vector 和 array 是数组的替代品。模板类vector类似于String类,也是一种动态数组。可以在运行阶段设置vector对象的长度,可以在追加数据或者插入数据。它是使用new创建动态数组的替代品。实际上,vector类确实使用new 和 delete来管理内存,但这种工作都是底层自动完成的。模板类array。vector类的功能逼数组强大,但付出的代价是效率稍低。如果您需要的是长度固定的数组。使用数组是更佳的选择,但代价是不那么方便和安全。于是C++11新增了模板类array。它
2021-04-17 20:25:17
1815
3
原创 Qt Designer 给自定义控件添加属性
Qt 当中有一个复杂的属性系统(Property System)。当你在Designer(设计师界面)中拉出来一个控件,接着,你可能会有一个需求要,例如把几个btn设为一组,可以是qss不需要写太多objectname就实现动态对每个btn的样式的操作,这个时候你就可以需要自己添加自己想需要的属性来把他们归为一类,并且用bool,=true的时候让这个btn进行简单的按钮高亮。通过元数据对象系统读写属性一个属性可以使用常规函数QObject::property()和QObject::setPrope
2021-04-12 22:27:42
3238
原创 每日C艹
1、把一个链表中的节点顺序倒排typedef struct linknode{ int data; struct linknode *next;}node;//将一个链表逆置node *reverse(node *head){ node *p, *q, *r; p = head; while(q!=NULL) { r = q->next; q->next = p; p = q; q = r; } head->next = NULL; head
2021-03-23 20:56:38
148
原创 Qt 基础重点整合 0,0
元气满满的一天从周六开始~阅读全文,大约需要15min~20min一、Qt 绘图(QPainter)图系统基于QPainter,QPainterDevice和QPaintEngine三个类QPainter(画家) 使用QPaintEngine(绘图工具)在QPainterDevice(绘图设备)上画画。注意:1、如果在主窗口上绘画,必须在绘图时间(paintEvent)中完成画画.2、绘图时间调用的时机(1、窗口加载 2、update() ).h//重写绘图事件virtual vo
2021-03-13 13:36:32
227
转载 Qt中QObject::sender()的用法
当某一个Object emit一个signal的时候,它就是一个sender,系统会记录下当前是谁emit出这个signal的,所以你在对应的slot里就可以通过 sender()得到当前是谁invoke了你的slot,对应的是QObject->d->sender.有可能多个Object的signal会连接到同一个signal(例如多个Button可能会connect到一个slot函数onClick()),因此这是就需要判断到底是哪个Object emit了这个signal,根据sender的
2021-03-12 20:48:46
851
原创 Qt 控件重写
今天在工作中遇到一个问题。双击LineEdit控件执行一个事件。这样子问题就来了,我们LineEdit正常是单击光标悬浮的这种状态,所以我需要对这个控件进行重写。因为是要重写,所以我们需要自定义QLineEdit。Qt 控件重写/*MyLineEdit.h*/#ifndef MYLINEEDIT_H#define MYLINEEDIT_H#include <QWidget>#include <QLineEdit> class MyLineEdit : publi
2021-03-12 20:12:33
1509
原创 QML 基础控件(下拉框、对话框、抽屉、滑动视图与页面切换)【下】
下拉框(ComboBox)import QtQuick 2.5import QtQuick.Window 2.2import QtQuick.Controls 1.4 //使用 Button 控件必须包含import QtQuick.Layouts 1.1 //使用 GridLayout 控件必须包含Window { visible: true width: 610 height: 75 title: qsTr("ComboBox") GridL.
2021-01-26 18:50:46
1703
1
原创 Qt treeWidget树控件之增删改(QPushButton实现 和 鼠标右击菜单实现)
点击的父节点显示的是在主枝干点击添加了四个子节点选中勾选。注意全勾选的区别。删除添加子节点2把添加子节点3–>改成编辑啦widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QMenu>#include <QAction>#include <QTreeWidgetItem>#include <QContextMenuEven.
2021-01-20 18:05:52
1400
1
原创 QML 基础控件(矩形框、标签、加载器、输入框)【上】
矩形框(Rectangle)标签(Label)加载器(Loader)输入框(TextField)下拉框(ComboBox)对话框(Dialog)抽屉(Drawer)滑动视图与页面切换(SwipeView)1. 矩形框(Rectangle)Rectangleimport QtQuick 2.6import QtQuick.Window 2.2Window { visible: true width: 640 height: 480 title.
2021-01-17 19:04:10
1754
原创 赏心悦目之Qml(3)
QML是⼀种描述⽤户界⾯的声明式语⾔。它将⽤户界⾯分解成⼀些更⼩的元 素,这些元素能够结合成⼀个组件。QML语⾔描述了⽤户界⾯元素的形状和 ⾏为。⽤户界⾯能够使⽤JavaScript来提供修饰,或者增加更加复杂的逻 辑。从这个⾓度来看它遵循HTML-JavaScript模式,但QML是被设计⽤来描 述⽤户界⾯的,⽽不是⽂本⽂档。从QML元素的层次结构来理解是最简单的学习⽅式。⼦元素从⽗元素上继承 了坐标系统,它的x,y坐标总是相对应于它的⽗元素坐标系统。让我们开始⽤⼀个简单的QML⽂件例⼦来解释这个
2021-01-17 15:54:39
170
原创 乘机应变之Qml(2)
Qt开发交流群:723516989~学完Qt后,当你真正使用上了Qml,你会发现Qml的id使用干净利落,百样玲珑。接下来我们走入Qml的代码大门。我们开始创建⼀个空的main.qml⽂档。所有的QML⽂件都已.qml作为后缀。 作为⼀个标识语⾔(类似HTML)⼀个QML⽂档需要并且只有⼀个根元素。import QtQuick 2.0 Image { id: root source: "images/background.png" }QML不会对根元素设置任何限制,我们使用一个bac
2021-01-16 11:03:21
183
原创 横空出世之Qml(1)
Qt Quick是Qt5中用户界面技术的涵盖。Qt Quick自身包含了以下几种技术:QML-使用于用户界面的标识语言JavaScript-动态脚本语言Qt C++ -具有高度可以移植性的C++库类似HTML语言,QML是一个标识语言。它由QtQuick封装在Item{}元素的标识组成。它从头设计了用户界面的创建,并且可以让开发人员快速,简单的理解。⽤户界⾯可以使⽤JavaScript代码来提供和加强更多的功能。Qt Quick可以使⽤你⾃⼰本地已有的Qt C++轻松快速的扩展它的能⼒。简单
2021-01-11 13:48:22
147
原创 C++ 回调函数(Qt系列)
什么是回调函数?就是以函数指针做参数传递给另一个函数称之为回调函数, 字面意思很简单, 但就这几个字想理解回调函数, 那又很难。因此别就这这字面意思, 只要知道怎么用, 在什么情况下用就行了什么场景下需要使用回调函数回调函数主要是完成通知功能, 例如我领导给我分配另外工作, 但是我手里工作又没做完, 那领导总不可能没过个几个小时就跑过来问一下,这样我们两个人都很烦, 而在代码中如果这样实现(需要开一个线程, 不停的轮寻)也很消耗系统资源, 所以最好的办法就是等我手里的工作完成了, 我自己去和领导说,然
2021-01-07 15:57:08
2553
原创 C/C++代码优化方案
1、选择合适的算法和数据结构2、使用尽量小的数据类型3、减少运算的强度(1)查表(2)求余运算(3)平方运算(4)用移位实现乘除法运算(5)避免不必要的整数除法(6)使用增量和减量操作符(7)使用复合赋值表达式(8)提取公共的子表达式4、结构体成员的布局(1)按数据类型的长度排序(2)把结构体填充成最长类型长度的整倍数(3)按数据类型的长度排序本地变量(4)把频繁使用的指针型参数拷贝到本地变量5、循环优化(1)充分分解小的循环(2)提取公共部分(3)延时函数(4)wh
2021-01-04 16:24:31
261
原创 数据结构_KMP算法与KMP算法的优化
朴素模式匹配算法的缺点:当某些子串与模式串能部分匹配时,主串的扫描指针i经常回溯,导致时间开销增加寻找 “google” 模板解决:改进思路- -KMP算法主串指针不回溯,只有模式串指针回溯。所以不同的模式串对应不同的表。观察:求模式串的next数组。next数组:当模式串的第j个字符匹配失败时,令模式串跳到next[j]再继续匹配。串的前缀:包含第一个字符,且不包含最后一个字符的子串。串的后缀:包含最后一个字符,且不包含第一个字符的子串。当j个字符匹配失败,由前1~j-1个
2021-01-02 15:44:34
201
Qt 软键盘(虚拟键盘) 可直接编译,嵌入式使用
2023-05-30
基于Qt的读取配置文件
2022-02-24
基于Qt环境下开发的日志log打印
2022-02-24
公共看门狗程序.zip
2021-10-21
project control system.zip
2021-08-31
Qt treeWidget树控件之增删改节点
2021-01-20
Qt WAV录音程序aaa
2021-01-08
手机商城H5静态界面_精美界面
2020-12-26
Qt 实现QQ聊天、发送文件demo
2020-12-07
小尧的面试问题集.pdf
2020-12-03
Qt 多线程的网络时间服务器Tcp demo
2020-12-01
Qt TCP聊天室demo
2020-12-01
Qt UDP通信demo
2020-11-27
Qt进度条加载资源demo
2020-11-26
Qt QQ好友多列表实现demo(抽屉效果)
2020-11-26
Qt 修改用户资料demo
2020-11-26
Qt dock小部件demo使用
2020-11-24
Qt 树控件demo
2020-11-23
Qt 通讯软件模块的仿写
2020-11-23
Qt实现滚动轮播图广告
2020-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人