自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路奇的博客

计算机编程一位路人

  • 博客(127)
  • 资源 (11)
  • 问答 (2)
  • 收藏
  • 关注

原创 QT基础 框选控件

当用户释放鼠标按钮时,检查框选区域内有哪些控件。这可能需要你遍历界面上的所有控件,并检查它们是否在框选区域内。:一旦你知道了哪些控件被框选,你可以执行相应的操作,比如高亮这些控件、执行某个命令等。方法中,根据鼠标移动的位置绘制一个矩形框,表示用户正在框选的区域。:当用户按下鼠标按钮并开始移动时,开始追踪鼠标的位置。:对于你想要框选的控件,你需要重写它们的鼠标事件处理函数(如。先说需求:比如有的时候想要框选界面上的控件,要怎么判断呢?//如果不想要矩形框去掉相应绘制窗口就可以了。方法来获取鼠标的当前位置。

2024-04-15 17:41:32 185

原创 C++ 类型推导Auto及decltype

除此之外使用 auto 会删除引用、const 限定符和 volatile 限定符,如下面代码会输出什么呢?是 C++11 及其后续版本中引入的两个关键字,它们都用于自动类型推导,但在使用和行为上有一些重要的区别。而是被立即处理,并且在当时诊断产生的所有错误。关键字在 C++ 中用于自动类型推导。编译器会根据初始化表达式自动推断变量的类型。关键字在编译时推导变量的类型,并且在推导过程中会考虑引用和。关键字使代码更加简洁,因为你不需要显式地写出变量的类型。因此,如果在 decltype。

2024-04-12 16:27:56 345

原创 C/C++ 内存分配方法对比

抽象级别new是一个高级别的抽象,它会自动调用构造函数和析构函数,并处理内存分配和释放。而allocate是一个低级别的抽象,只负责分配和释放内存,不涉及对象的构造和析构。初始化new会初始化分配的内存,而allocate只分配未初始化的内存。错误处理new在内存分配失败时抛出异常,而allocate在失败时返回nullptr(如果它设计为这样做的话)。使用场景new通常用于直接创建对象,而allocate通常用于实现自定义容器或需要更精细控制内存分配的场景。释放内存new分配的内存使用delete。

2024-04-12 14:47:35 613 2

原创 C++基础 别名和typedef

C++ 别名是在编程中用于为类型、命名空间或函数定义别名的一种方式。常见方式比如引用、宏定义、typedef。下面说说几种不常用。

2024-04-12 14:32:21 173

原创 C++ 基础 alignas alignof

alignas是C++11引入的一个关键字,用于指定对象或类型的对齐方式。对齐方式指的是对象或类型在内存中的起始地址的对齐方式,对齐方式的选择可以在一定程度上提高程序的运行效率。,表达式必须是 0 或幂为 2(1、2、4、8、16、...)的整型常量表达式。所有其他表达式的格式不正确,要么会被编译器忽略掉。可以对 struct。alignof运算符将指定类型的对齐方式(以字节为单位)作为类型 size_t。或变量声明使用 alignas。

2024-04-12 13:46:12 271

原创 开源 C/C++(DuckX)操作docx文旦

1.详情创建、读取和写入 Microsoft Office Word docx 文件,可以不使用Microsoft Office组件。目前看操作docx文件绕不开Microsoft Office组件,虽然本项目可以读取docx文档,但是里面排版都消失了,除此之外,doc文件不支持,支持window、linux。主要添加.h和.cpp文件。

2024-01-25 09:43:59 609

原创 Qt基础 低功耗蓝牙通信

首先说下基础知识,蓝牙连接是分经典蓝牙和BLE(低功耗)蓝牙的,他们的通信方式不一样,经典蓝牙用的socket,BLE用的是服务与特征。平台式VS2019+Qt5.12.11,但是Qt支持蓝牙并不好,如果你们有其他方案的话,尽量使用其他方案,因为有些问题,博主也没解决。添加头文件。

2024-01-23 11:00:53 827

原创 VS C++ 查找虚拟机

方式2:找文件路径  -- C:\Program Files\VMware\VMware Tools。方式1:搜索服务   -- 包含WMware Tools / WMware 物理磁盘助手服务。方式3:寻找进程   -- vmtoolsd.exe。

2023-12-20 11:24:07 435

原创 VS+Qt 打包Python文件

先说下环境vs2019+Qt5.12.11+python3.8,这里需要注意如果你要适配Win7的系统,python最好是9以下,以上不兼容,也没时间找方法,找到评论说下。他们大部分用的Anaconda 这个外部工具处理python库的,将python环境打包成一个文件,这里我测试失败了,但是大体思路其实都是一样的:包含python环境。后面我分析软件崩溃的原因,将将错误界面截图下来,发现是因为程序文件缺失这几个文件导致的。如果你是环境是Qt Creator,可以参考这个。,下面来谈谈随exe文件打包。

2023-12-19 15:19:01 461

原创 C++基础 std::bind

std::bind是C++11中的一个函数模板,用于将一个函数或成员函数与其所需参数绑定,返回一个可调用对象。

2023-12-08 10:22:36 127

原创 C++基础 std::funtion简说

类模板是通用多态函数包装器。的实例能存储、复制及调用任何可复制构造 (CopyConstructible)的可调用 (Callable)目标——函数、lambda 表达式bind 表达式或其他函数对象,还有指向成员函数指针和指向数据成员指针。存储的可调用对象被称为的目标。若不含目标,则称它为空。调用空的目标导致抛出异常简而言之:std::function实现了一套类型消除机制,可以统一处理不同的函数对象类型。以前我们使用函数指针来完成这些;

2023-12-08 10:00:55 159

原创 C++基础 std::Move简说

Move最主要的作用是实现移动语义,避免不必要的复制操作,move函数的参数是一个通用引用(universal reference),既可以接受左值类型,也可以接受右值类型。首先,函数参数T&&是一个指向模板类型参数的右值引用,通过引用折叠,此参数可以与任何类型的实参匹配(可以传递左值或右值,这是std::move主要使用的两种场景)。提到Move引出一个C++ 中有左值和右值的概念,简单来说,左值指的是可以取地址的表达式,右值指的是不可以取地址的表达式。传递类型保持不变还是右值,而左值经过。

2023-12-07 16:10:26 527

原创 C++基础 强制转换

C++ 提供几类转换。

2023-12-07 15:03:45 97

原创 Qt基础 QListWidget dragDrop拖拽操作

关于QLisWidget的item拖拽操作,也可以某个控件拖拽思路。

2023-12-01 18:08:47 846

原创 开源闭源杂谈

总的来说,开源和闭源软件都有其优缺点,选择哪种方式取决于具体的情况和需求。在数字化时代,我们需要更加开放和协作的态度来推动技术的发展和创新,同时也需要保护商业利益和技术安全。通过开源,软件开发人员可以在全球范围内进行协作和创新,这种分布式的方式可以加速技术的发展和创新的速度。此外,开源社区的透明度和开放性可以鼓励更多的参与和贡献,使得软件更加完善和适应各种不同的需求。这是因为大模型需要大量的数据和计算资源来进行训练和优化,而开源可以促进资源的共享和优化,使得更多的人可以参与到大模型的研发中来。

2023-11-17 11:36:55 120

原创 Qt基础 界面镜像

前几天遇到一个需求 镜像界面想到几个办法,先给效果图。

2023-11-15 17:49:38 329

原创 Qt基础 QT QTextEdit自动滑动

获取QTextEdit的QScrollBar,然后再构造函数算出QScrollBar歩长pageStep(这里不知道为什么在其他地方算的步长很大),然后就定时器QScrollBar++或者--啦。最近公司在做一个提词项目,本来对这里功能难易感觉属于一般的,谁知道碰到一个很简单问题,搞了半天,先喷一下百度浏览器 不知道是算法越来越垃圾,还是我检索的有问题,还是说这个问题很难。那个End不用看意思就知道光标移动到文章尾部,还自动滚动,滚尼ma呢。严重标题与内容不符,别用猪脑写文章好不好!

2023-11-14 10:32:21 486

原创 话题 It人的护城河

综上所述,技术能力的深度、对创新的追求以及沟通协作等软实力都是程序员的护城河。这些能力相互补充,共同构成了程序员的全面素质。只有不断提升这些能力,程序员才能更好地应对不断变化的技术环境和工作挑战,为我们的社会构筑更加安全、稳定和创新的未来。程序员的护城河可以包括多个方面,包括但不限于技术能力的深度、对创新的追求以及沟通协作等软实力。

2023-11-09 11:53:58 92

原创 Qt基础 QScatterSeries

QScatterSeries类是Qt Charts模块的一部分,用于表示散点图。

2023-10-20 11:48:20 294

原创 QT基础 柱状图

从上图得知柱状的基类是QAbstractBarSeries,派生出来分别是柱状图的水平和垂直类,只是类型行不同。

2023-10-19 15:14:56 669

原创 C++基础 关于std::shared_ptr循环应用问题

这种情况下,内存无法被垃圾收集器正确释放,从而可能导致内存泄漏,在这种情况下,A的实例可以通过bPtr引用B的实例,反之亦然。但是,如果这些是唯一的引用,那么垃圾收集器无法确定这两个对象何时不再需要,因为它们互相引用,形成了一个循环。使用引用计数技术追踪所管理对象的引用数量,当引用计数变为零时,自动销毁所管理的对象。可以自动释放动态分配的内存,当指针超出作用域或被重置时,它会自动删除所管理的对象。是一种独占式智能指针,用于管理唯一的对象,确保只有一个指针可以访问该对象。对象存在,所管理的对象也会被销毁。

2023-10-18 16:33:16 135

原创 Qt基础-乱码问题

围绕这些名词:字符编码、字符集、如ASCII、UNICODE、GBK、GB2312、GB18030、UTF-8、UTF-16等,源码字符集、执行字符集,MSVC编译器、MinGW编译器等,差不多就够了。个人常用原生的QtCreator开发,Qt+VS环境对调试非常友好,其它的了解不多,但乱码问题应该也没有的,因为源码字符集以及执行字符集都是GBK,统一就没有问题。,原因就是QtCreator源码字符集默认UTF8的,MSVC执行字符集默认GBK的,不统一乱码自然出现。源码字符集 和 执行字符集编码不统一。

2023-10-18 15:42:06 99

原创 Qt基础 QPieSeries饼状图

tip:上面代码QObject::connect按道理不应该是按照下面这样去弄,按照上面调式我发现循环外事。QPieSeries Class:饼状图数据。表示饼图系列中的单个切片(其实就是标签)管理图表系列、图例和轴的图形表示。可以显示图表的独立小部件。

2023-10-17 17:26:30 363

原创 QT基础 QChart绘制折线

本质逻辑上与上面差不多,但是如果要放大/缩小等操作,需要重写一下QChartView函数,如果是触摸的需要重写QChart的bool sceneEvent(QEvent *event);

2023-10-11 17:42:54 362

转载 关于Qt QPushbutton 图标与字体间距处理办法

/新建布局,把元素一一添加到布局,再把布局设置到按钮上。//new两个Label,一个放置图片,一个放置文本。//设置文字的字样、字体、颜色等样式及文本框宽度。//设置描述按钮功能的文字。//加载图片到Label。

2023-10-10 17:57:11 973

原创 我的创作纪念日

在学习的过程中,我会通过写作来记录自己的思考和见解,这有助于加深对知识的理解和掌握。在写作中,我需要与粉丝进行互动和交流,这让我学会了如何更好地传达自己的想法和观点,并倾听他人的反馈和建议。总之,作为一个程序员,你需要平衡好编程和写作的需求,并在两个领域中不断提升自己的技能和能力。总的来说,创作让我成长了许多,不仅提高了我的思考能力和表达能力,还让我学会了与他人沟通和合作。通过将创作与工作和学习的经验和知识相结合,我能够更好地发挥自己的潜力和才能,同时也能够为他人和社会带来积极的影响。

2023-09-26 09:52:05 50

原创 QML Book 学习基础5(An Image Viewer)

下面我们用更有挑战性例子来使用Qt控件,将创建一个简单的图像查看器。

2023-08-29 18:03:05 309

原创 QML Book 学习基础4(状态和转换)

用户界面的某些部分可以用状态来描述。状态定义一组属性更改,并且可以由特定条件触发。QML 中定义状态,该元素需要绑定到任何项目元素的数组。states状态通过状态名称标识状态是通过状态名标识的,最简单的形式是由元素对象上的一系列属性更改组成。默认状态由元素对象的初始属性定义,并命名为""(空字符串)。通过为定义状态的元素的状态属性指定新的状态名称,可以更改状态。控制状态的另一种方法是使用State元素类型的when属性。

2023-08-29 11:58:10 204

原创 QML Book 学习基础3(动画)

Qt 动画是一种在 Qt 框架下创建交互式和引人入胜的图形用户界面的方法,我们可以认为是对某个基础元素的多个设置。

2023-08-29 09:14:08 187

原创 QML Book 学习基础2(基本元素控件)

图像的源使用 source 属性指定为 URL。图像可以以Qt支持的任何标准图像格式提供,包括位图格式(如PNG和JPEG)和矢量图形格式(如SVG)。如果需要显示动画图像,请使用。Text项的初始宽度依赖于所设置的字体和文本字符串。没有设置宽度且无文本的Text元素将不可见,因为初始宽度将为0。矩形项用于用纯色或渐变填充区域,和/或提供矩形边框。需要注意如果长宽没有设置,是无法看到矩形的。AnimatedSprite或AnimatedImage。

2023-08-28 15:58:08 240

原创 QT基础 关于QT延迟

使用QEventLoop传入参数msec,使程序延时msec毫秒。这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。当然,你也可以更改addMSecs为addSecs使程序延时msec秒。如果去掉QCoreApplication::processEvents(QEventLoop::AllEvents, 100);可以延时,但也会阻塞线程。

2023-08-25 15:47:11 1226

原创 Qt基础 线程池

主要属性:1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。2、expiryTimeout: 线程活着的时间。没有设置expiryTimeout毫秒的线程会自动退出,此类线程将根据需要重新启动。默认的expiryTimeout为30000毫秒 (30 秒)。如果expiryTimeout为负,则新创建的线程将不会过期, 在线程池被销毁之前, 它们将不会退出。

2023-08-25 14:29:24 105

翻译 QML Book 学习基础1

QML是一种声明性语言,用于描述对象之间的关系。遵循HTML-JavaScript模式,但是为QML和QtQuick重新设计过,因此是在两者基础上基础建立。property通常通过id访问特定元素,或者使用parent关键字访问父元素。所以最好将根元素命名为root,使用id: root。这样就不必考虑如何在QML文件中命名根元素。这里需要注意的是每个ID都是唯一的,遵循后来为尊(假如有两个Button(在同一个作用域内)的id都是root,则最后那个会覆盖前面那个)

2023-08-25 11:57:42 62

转载 Qt基础 hid设备通信

这篇文章主要是记录C++与USB-hid设备(即免驱动的usb设备,鼠标、键盘就是hid设备)进行通信,它也是一种USB设备,只不过不需要安装驱动,如果要与非USB-HID设备通信请参考libusb。libusb首页github地址以上就是hidapi库的配置方法和使用,仅作为学习记录参考。如果本文章有误,请指出,感激不尽!

2023-08-14 11:07:04 1212

原创 QT基础 Hid设备插拔检测

hid设备检测踩了好多坑,本博客一一列出来,先说环境是Qt5.12+Vs2019的,如果是MFC的框架可以去看MFC的了,两者环境区别还是很大(我帮你踩了)。这里主要说一下,插拔Hid设备检测,检测hid可以分为两步。因为处理消息nativeEvent是QWIdget函数在写的时候继承QWidget,除此还有一些博客会用nativeEventFilter这个消息处理,这里wParam就是Hid设备操作。注册监控需要注意是设备GUID,每种设备GUID是不一样的,下面基本上罗列常用。

2023-08-10 18:14:21 585

原创 QT 常用数据结构整理

当添加新的元素时,QList会根据需要自动扩展内存空间,以容纳更多的元素。如果返回值大于1,说明程序之前使用 insertMulti() 函数为一个 key 添加了多个 value 值(QMap 允许一对多映射,多个 key-value 元素 的 key 值相同,但一般不建议这样做)。第一个 ​insert() 自动添加新节点到红黑树的排序位置,红黑树只按照 key 排序,同样 key 的多个 value 值不会排序,同样 key 的新节点总是插入到同样 key 旧节点的最前面。

2023-07-28 13:57:52 876

原创 QT elidedText 避坑

我们知道这段代码是省略名称 但是如果你是new出来的,这里你有样式 并且样式里用的字体大小,把这段代码加到样式下面可以,如果单独写就不行。解决办法:再设置一下字体。

2023-07-14 14:03:36 182

原创 qt Qss 边框渐变

使用QGraphicsEffect:你可以使用Qt的图形效果框架来实现按钮的渐变边框效果。首先,你可以创建一个QGraphicsEffect对象,并将其设置为按钮的图形效果。然后,你可以使用QLinearGradient来创建渐变效果,并将其设置为QGraphicsEffect的属性。使用QPainter绘制:你可以通过重写按钮的paintEvent函数,使用QPainter来绘制按钮的边框。在绘制过程中,你可以使用QLinearGradient来创建渐变效果,并使用QPen来设置边框的样式。

2023-06-30 17:36:05 1286

翻译 Qt 关于Qt信号多层传递优化

有一个信号(假如是clicked信号),只能从D->B->C->A类这样传递信号,会很冗余,有没有什么好的办法?我们其实可以做全局信号传递类TranceClass(就叫T吧),只需要从D->T->A就可以了,但是T被很多类调用,如果不小心delete就很麻烦了,这就引出的"单例类"用法其实很简单,我们只需要获取传递类T的单例对象就可以,然后就像正常信号接收消息,然后在传送消息(如果参数就传参数)下面是单例T的写法,可以参考一下

2023-06-19 18:00:03 317

原创 操作数据库插入数据

数据库是有唯一的主键(你可以设置也可以不设置),主键设置了数据库是唯一不可改变的。当我们插入数据时,因为主键是不可以改变的所以你想在中间插入是不行的,当然你也可以不设置主键处理。同时,为了保护您的数据安全,建议您在使用这些语句之前备份您的教据。其中,temp_table是您要创建的临时表的名称,original_table是您要插入数据的原始表的名称。1.首先,您需要创建一个临时表,该表与原始表具有相同的结构,但不包含主键约束。5.最后,您需要将临时表中的数据插入到原始表中,并将主键和后续数据往后移动。

2023-05-31 15:19:32 855

Qt WIFI连接demo

项目背景: Qt应用程序开发框架,C++编程语言。 主要用途: 这个项目的主要是使用Qt5和C++来创建一个应用程序,该应用程序可以搜索可用的Wi-Fi网络并允许用户连接和断开Wi-Fi网络。 包含功能: 1.根据Wi-Fi适配器搜索Wi-Fi:这个功能需要使用到系统的一些API来访问Wi-Fi适配器并搜索可用的Wi-Fi网络。Qt提供了用于访问系统级功能的库,这些库可以用于实现这个功能。 2.连接/断开功能:这个功能需要创建一个界面让用户可以连接和断开Wi-Fi网络。Qt提供了用于创建界面的库,这些库可以用于创建这个界面。 3.扫描Wi-Fi列表:这个功能需要从系统获取可用的Wi-Fi网络列表并显示在界面上。Qt提供了用于显示列表的控件,这些控件可以用于显示Wi-Fi网络列表。 4.显示Wi-Fi信息:这个功能需要在界面上显示每个Wi-Fi网络的信息,例如SSID、信号质量、RSSI等。Qt提供了用于显示各种类型的数据的控件,这些控件可以用于显示Wi-Fi网络的信息。 5.根据电脑上保存的密码进行连接:这个功能需要从电脑中获取保存的Wi-Fi网络密码并使用该密码进行连接。

2023-10-20

解决libfaad_release静态编译出错问题,这个lib是静态编译的

解决libfaad_release静态编译出错问题,需要将libfaad_release.lib也静态编译,才能被静态编译吊桶,否则用动态调用会报错,当然也可以用共享的DLL使用MFC,但是如果客户那边没环境,就会报缺少MFC100d.dll等文件缺失问题

2022-08-17

SQLiteExpertPersSetup.zip

SQLlite软件,可以对.db文件进行操作

2021-03-16

__VA_X_Setup2052.zip

解决番茄助手秘钥失败问题点击exe,替换dll就可以了

2021-01-19

windows核心编程-73.zip

从入门到精通:适合有一定经验程序员的实用教程;侧重于技术和特征;提供范例文件。文档比较清晰。侧重于高级特性、技术和解决问题;包含丰富、适用性强的范例代码;帮助读者精通微软技术。

2020-01-02

串口通信 - 副本.zip

串口通信demo,vs2015可以编译,支持16进制自动发送等功能.

2019-10-23

C ++多线程编程实战姜佑译.rar

C++并发基础文档和实战练习,多线程编程是当今热门的一种编程技术。结合强大的C++,你可以轻松创建各种类型的应用程序、执行并行和优化现有程序。吐槽:积分不能设置

2019-05-21

学生数据库(参考部分功能还没有完成).rar

学生数据库(参考部分功能还没有完成),只作为参考价值。现在积分很恶心,系统自动设置。

2019-05-20

21天学通C++(第6版)205

内容比较清晰,适合新手学习的资料。讲解比较基础的语法。C++学习资料。

2019-04-29

MFC Clist 字体颜色 行列背景 整行高度

MFC Clist 字体颜色 行列背景 整行高度,里面三个文档,一个vb6.0的,一个类文件,一个vs05的(我用vs15打开没有问题)

2018-05-21

坐在马桶上学算法 - v1.1

坐在马桶上学算法 - v1.1 .pdf格式

2016-05-14

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

TA关注的人

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