- 博客(193)
- 问答 (4)
- 收藏
- 关注
原创 《QT从基础到进阶·七十三》Qt+C++开发一个python编译器,能够编写,运行python程序
该项目利用Qt+C++实现了一个简易的python编译器,类似pycharm或vsCode这样的编译器,该python编译器支持如下功能:(1)支持编写python程序(2)编写代码时有代码补全提示(3)程序运行到每行时该行高亮显示(4)可以加载python脚本执行(5)可以在程序运行的过程中随时中断(6)有输出窗口实时显示程序执行的状态或执行程序的打印显示等(7)支持在界面上打断点调试,该条在开发中…
2024-08-21 21:01:14 435
原创 《人生苦短,我用python·十三》python通过ctype方式对C++的dll进行函数调用、返回字符串、使用指针、结构体参数和处理异常使用
通过以上示例,我们展示了如何使用Python的ctypes库调用C++的DLL接口。无论是简单的函数调用、返回字符串、使用指针、结构体参数还是处理异常,ctypes都能提供灵活的方式与C++代码进行交互。假设我们有一个简单的C++ DLL,包含一个函数add,用来计算两个整数的和。假设我们有一个C++函数使用指针来修改传入的值。假设我们有一个C++函数使用结构体作为参数。假设我们有一个C++函数返回一个字符串。假设我们有一个C++函数可能抛出异常。编译生成mylib.dll。编译生成mylib.dll。
2024-07-27 18:45:35 239
原创 《人生苦短,我用python·十二》python通过ctype方式调用C++接口
首先,我们编写一个简单的 C++ 代码并生成一个共享库(如 .dll, .so, 或 .dylib)。使用 ctypes.CDLL 加载共享库。2、在 Python 中使用 ctypes 调用共享库中的函数。定义与 C++ 中结构体相同的 Python 结构体。使用 argtypes 指定参数类型列表。使用 argtypes 指定函数参数类型。使用 restype 指定返回结构体类型。使用 restype 指定返回值类型。1、编写 C++ 代码并生成共享库。调用函数并处理返回的结构体。
2024-07-25 20:10:58 186
原创 《人生苦短,我用python·十一》python网络爬虫的简单使用
Python 有很多库可以用于网络爬虫,最常用的包括 requests 和 BeautifulSoup。以下是如何使用这些库来爬取数据的详细步骤和示例。BeautifulSoup 是一个用于解析 HTML 和 XML 文档的库。对于动态生成的内容,如通过 JavaScript 加载的内容,可以使用 Selenium 库。使用 User-Agent:在请求头中添加 User-Agent,表明请求是由浏览器发出的。设置适当的请求间隔:避免频繁请求,给服务器带来负担。
2024-07-23 21:43:21 414
原创 《人生苦短,我用python·十》python的异常使用
在这个示例中,当尝试除以零时,会引发 ZeroDivisionError 异常,并在 except 块中捕获和处理。Python 提供了 try…except 语句来处理异常。finally 块中的代码无论是否引发异常都会执行,常用于清理资源。在这个示例中,func1 引发的异常被 func2 捕获。else 块中的代码仅在 try 块没有引发异常时执行。使用 else 和 finally。
2024-07-17 19:15:14 300
原创 《人生苦短,我用python·九》python之线程池ThreadPoolExecutor的使用
Python线程池是一种管理和使用线程的高级抽象,使得线程的创建、分配和管理更加方便。通过线程池,可以避免频繁地创建和销毁线程,从而提高程序的性能。通过使用线程池,可以提高程序的并发性能,简化多线程编程的复杂性。通过future.result()方法获取结果时,如果任务抛出了异常,会重新引发这个异常,可以在except块中处理。submit方法返回一个Future对象,通过调用Future对象的result方法,可以获取任务的执行结果。map方法会返回一个生成器,生成器中的每个元素都是函数执行的结果。
2024-07-13 14:43:46 442
原创 《人生苦短,我用python·八》多线程和线程池的使用
这对于IO密集型任务(如网络请求、文件读写等)非常有用,因为这些任务在等待外部资源时可以让其他线程继续工作,从而提高程序的效率。在这个例子中,我们创建了两个线程,并启动它们。threading.current_thread().name用于获取当前线程的名称,time.sleep(2)用于模拟一个需要两秒钟完成的任务。在多线程编程中,同步是一个重要的概念。在这个例子中,我们创建了一个包含两个工作线程的线程池,并提交了两个任务给线程池执行。在这个例子中,生产者线程将数据放入队列,消费者线程从队列中取数据。
2024-07-08 19:35:02 324
原创 《QT从基础到进阶·四十三》QPlugin插件多线程问题和只有插件dll没有头文件和lib文件时调用插件中的方法
创建插件对象不能放到多线程执行,不然报错:ASSERT failure in QWidget: "Widgets must be created in the GUlthread.第一步:插件实现纯虚函数时把方法通过 Q_INVOKABLE 宏注册到 Qt 的元对象系统中,即在方法前加Q_INVOKABLE。getinstance方法会在多线程执行,但loadPlugin会被强制塞入主线程执行,执行完毕继续多线程执行下面的代码。现通过QObject*直接调用getWidget。
2024-07-06 18:03:16 263
原创 《人生苦短,我用python·七》各种报错问题解决及C++调用python的接口
报错:module ‘test’ has no attribute ‘getFunc’,具体原因还不清楚。现在测试把#include放在pybind11头文件面前在debug版本下这里_DEBUG会高亮,如果把python.h放在pybind11头文件后面在debug版本下_DEBUG不会高亮。目前还不知道啥原因,但知道这是调用debug版本的python导致的,目前的解决方案是把VS的附加库目录python38_d.lib换成release版本的python39.lib。
2024-07-03 20:30:31 307
原创 《人生苦短,我用python·六》ctypes 封装 C++ 接口并在 Python 中调用
数据类型:ctypes 提供多种数据类型(如 ctypes.c_int, ctypes.c_double 等)用于封装和传递数据。如果你的 C++ 函数需要处理复杂的数据结构,可以使用 ctypes 提供的其他类型和功能来封装和传递这些数据。你可以将 DLL 文件放在与你的 Python 脚本相同的目录中,或者将 DLL 的路径添加到系统环境变量中。错误处理:使用 ctypes 调用动态链接库时,建议添加错误处理代码,以便在加载库或调用函数失败时能及时发现并处理问题。使用 ctypes 调用动态链接库。
2024-06-29 13:08:23 227
原创 《人生苦短,我用python·五》pybind11关于继承,多态的使用
多态函数的绑定:使用 py::overload_cast 来处理多态函数,以支持 C++ 中的函数重载和多态性。虚析构函数和纯虚函数:确保 C++ 类中有正确的虚析构函数和纯虚函数定义,以便正确地处理对象的生命周期和多态性。使用 py::overload_cast 处理多态的成员函数。使用 py::class_ 定义类。
2024-06-27 19:22:06 243
原创 《人生苦短,我用python·四》pybind11多场景使用
Pybind11作为一个强大的工具,不仅可以轻松地将简单的C++函数和类暴露给Python,还可以处理更复杂的场景,比如支持C++标准库容器、处理C++异常、以及自定义数据结构的转换。本文将深入介绍Pybind11的一些高级用法,帮助你在实际项目中更好地利用C++和Python的结合。本文介绍了Pybind11的一些高级用法,包括如何支持C++标准库容器、处理C++异常以及自定义数据结构的转换。Pybind11允许我们将C++异常转换为Python异常,从而在Python中捕获和处理。
2024-06-23 11:48:12 496
原创 《QT从基础到进阶·七十二》基于Qt开发的文件保险柜工具并支持文件各种加密和解密
该项目实现了文件各种加密和解密的功能,能够有效的保障文件的安全,主要包含如下功能:1、支持所有 AES 密钥长度;AES_128AES_192AES_2562、支持ECB、CBC、CFB、OFB四种模式;3、支持ZERO、PKCS7、ISO三种填充方式;4、支持md5文件损毁检测5、支持输入任意长度密钥进行加解密;6、将.bmp格式图片加密后可正常打开图片,不破坏图片格式。项目截图效果如下所示:(1)(2)(3)
2024-06-19 18:07:30 340
原创 《QT实用小工具·七十一》基于Qt+Qml开发的文件传输工具
该项目基于QT+QML实现了文件传输的功能,可以在局域网环境下使用(热点),扫描使用UDP,传输使用TCP,每一个文件传输使用独立的线程进行处理,高效便捷。
2024-06-17 20:43:14 436
原创 《QT实用小工具·七十》openssl+qt开发的P2P文件加密传输工具
该项目实现了P2P的文件加密传输功能,具体包含如下功能:1、 多文件多线程传输2、rsa+aes文件传输加密3、秘钥随机生成4、断点续传5、跨域传输引导服务器。
2024-06-10 09:56:59 379
原创 《C++避坑神器·二十七》VS中release打断点方法,#undef作用
undef指令用于”取消“已定义的#define指令。VS中release如何打断点
2024-06-08 19:03:32 226 1
原创 《C++避坑神器·二十六》结构体报重定义错误问题和std::variant同时存储不同类型的值使用方式
person就是struct person,这时候并没有创建对象,放在头文件被多个文件包含不会报错,创建对象为person p;p是一个已经创建好的对象,相当于struct person p;如果放在头文件中容易被多个文件包含报重定义错误。
2024-06-05 19:31:49 432 1
原创 《QT从基础到进阶·四十二》QT运行后项目图标,exe图标问题,VS加载.pro文件问题
,错误计数超过100,语法错误return,语法错误”
2024-06-04 19:58:05 320 1
原创 《QT从基础到进阶·四十一》无法解析的外部符号及生成事件加入QT打包命令报错问题
qt_metacall@ML_AddinManger@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)…该命令的目的是在编译的时候自动把需要的QT依赖编译到release目录下,相当于编译的时候直接打包了一个release版本,如果在生成后事件报错主要是无法识别windeployqt位置,需要在环境变量的path目录下加入QT的bin目录,比如D:\QT\5.15.2\msvc2019_64\bin。第一种写法将 Q_OBJECT 宏放在类的声明之后,而没有换行。
2024-06-03 20:23:40 552 2
原创 《QT从基础到进阶·四十》setObjectName的访问不明确和无法解析的外部符号 “public: static struct QMetaObject const ...
因为通常的C++中,我们只调用头文件的情况下,不需要把头文件加入项目中,让项目能找到就行,但QT不是这样,必须加入项目中才能让qmake MOC一遍。MOC这个鬼东西的奇妙之处就是,qmake只对头文件进行处理,不会对CPP进行处理。之前创建了QT控制台,是一个cpp文件,运行使用在qobject_cast强转时报无法解析的外部符号。通常发生在有多个不同命名空间中存在具有相同名称的函数或对象,并且编译器无法确定要使用哪一个。(2)在控制台项目-现有项中把调用的头文件加入进来(不一定能行)
2024-06-02 13:07:19 475 1
原创 《mysql轻松学习·二》
/把表中id=2的那一条数据中的sex改为2,不加where id = 2会把所有数据中的sex改为2。//添加字段sex,类型为varchar(1),这里varchar(1)可能表示sex字段内容只占一个字符。
2024-06-01 17:18:12 409 1
原创 《mysql轻松学习·一》
tinyint(1字节),int(4字节),float(4字节)double(8字节)decimal(Max(D+, M+)含小数值,例如金额)SQL:结构化查询语言,用于访问和操作数据库,包括数据定义,数据操纵,数据查询,数据控制。//查看数据表中存储的数据,*表示该表下的所有数据。//显示当前在哪个数据库下。create database数据库名;//查看当前数据库下包含的数据表。//查看用户信息,端口,版本号等信息。//显示所有的数据库。//查看数据表下的参数结构。//切换到某个数据库下。
2024-05-31 20:41:16 490 1
原创 《QT实用小工具·六十九》基于QT开发的五子棋AI游戏
该项目实现了五子棋对战AI,可以享受和AI下棋的快乐,项目实现思路如下:博弈树●Alpha-Beta剪枝(性能提高较大)●启发式搜索(性能提高较大)●落子区域限制(性能提高较大)●Zobrist哈希(性能小幅提升)●Qt多线程计算避免界面卡死●小概率走法剔除仅进行Alpha-Beta剪枝+落子区域限制,思考两层,计算量在3k-9k,2s内计算完毕;思考四层,计算量在9k-20w,2s~20min内计算完毕.+启发式搜索,思考两层,思考两层,计算量在900-2k,1s内计算完毕;
2024-05-30 20:37:36 473 1
原创 《QT实用小工具·六十八》基于QMenu开发的炫酷菜单栏
该项目基于QMenu实现了炫酷的菜单栏效果,包含了如下功能:1、实现了类似word菜单栏的效果,可以在菜单栏中横向添加不同的菜单2、鼠标点击菜单可以展开菜单栏,再次点击菜单可以收起菜单栏3、鼠标点击笑脸可以切换菜单栏的背景颜色
2024-05-29 20:25:15 554 1
原创 《QT实用小工具·六十七》QTabWidget实现的炫酷标签工具栏
该项目基于QTabWidget和QTabBar实现了灵活的标签工具栏,主要包含如下功能:1、标签栏可以收起,可以展开2、可以在标签栏中添加新的标签界面3、可以从标签工具栏中把界面拖出来,也可以拖回去4、关闭拖出来的界面会自动回到标签工具栏5、可以调换标签工具栏中界面的顺序
2024-05-28 20:14:17 589 1
原创 《QT实用小工具·六十六》基于QT开发的界面收缩栏
该项目实现了一个界面收缩栏的效果,该收缩栏包含如下功能:1、可以在收缩栏中添加若干个界面2、鼠标点击收缩栏可以展开或收起界面3、鼠标拖动收缩栏可以和其他界面互换位置
2024-05-27 20:47:48 833 1
原创 《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖
该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果,项目demo演示如下所示:项目解析://创建动画对象,第一个参数传入需要移动的控件对象,第二个参数"pos"表示该控件实现直线移动。信号槽表示动画移动结束会发送finished信号。控件左移动实现,右移动和双边移动同理该函数为动画结束后信号触发的槽函数,主要实现的功能是当控件移动结束后覆盖到另一个控件的上方并设置该控件的透明度。
2024-05-23 20:33:41 689 1
原创 《QT实用小工具·六十四》QT实现仿Windows消息通知控件可交互
该项目实现了仿Windows消息通知功能,包含多个通知显示+定时消失+支持出现/消失动画等功能允许两种使用方式:局部通知,通过信号槽和 Lambda 直接获取通知的操作方式全部通知,触发信号给其他控件使用另外支持卡片本身、附加三个按钮的点击事件。
2024-05-16 20:49:14 440 1
原创 《QT实用小工具·六十三》QT实现微动背景,界面看似静态实则动态
该项目实现了微动背景,界面看似静态实则动态,风动,幡动,仁者心动,所以到底是什么在动?哈哈~界面会偷偷一点一点改动文字颜色的颜色填充。虽然是动态,但是慢到难以发觉,最适合大段文字的长期阅读与写作。不是简单的定时改变的纯色/渐变填充,还可以设置颜色变化边界、颜色数量、角度、渐变比例等。
2024-05-12 11:39:45 381 1
原创 《QT实用小工具·六十二》基于QT实现贝塞尔曲线画炫酷的波浪动画
该项目实现了通过贝塞尔曲线画波浪动画,可控制 颜色+密度+速度+加速度将屏幕水平平均分为10块,在一定范围内随机高度的12个点(左右出头),通过贝塞尔曲线连接连续的点,即可绘制成一段段连续的波浪。但是每两端波浪都会有折线凸起,根据贝塞尔曲线的原理,两个控制点中点作为新的控制点,原来的两点连线即为该控制点在新曲线上的切线,这样既可绘制成只由三个控制点影响的B样条。为了逼真,通过时钟以及大量状态机确定随机范围,例如在某一段时间整体偏下方,某一段时间整体偏上方,模仿大自然水面潮涨潮落。
2024-05-10 21:33:42 769 1
原创 《QT实用小工具·六十》Qt 多列时间轴控件
Qt 多列时间轴控件。可与多段字符串格式自由转换,也可手动添加列表项。专门用来以时间轴作为事件线发展顺序的故事大纲。特点时间背包功能:记录所有物品或属性发生的变化,随时回溯时间可输入任意内容,不限于时间每一时间段允许多列,即多个文字节点全自动调整节点大小(宽高),尽量看起来舒服行与行、列与列 之间任意拖拽更换顺序可与文字自由转换,默认一段为一个文字节点方便的多行操作按需修改快捷键所有编辑可撤销美观的调整动画
2024-05-07 20:21:05 1072 1
原创 《QT实用小工具·五十九》随机图形验证码,带有一些可人的交互与动画
该项目实现了可交互的动画验证码控件,趣味性十足:字符变换动画噪音动画可拖动交互
2024-05-07 20:14:25 397 1
原创 《QT实用小工具·五十八》模仿VSCode的可任意拖拽的Tab标签组
该项目实现了模仿VSCode的可任意拖拽的Tab标签组,包含如下功能:拖拽标签页至新窗口拖拽标签页合并控件无限嵌套的横纵分割布局(类似Qt Creator的编辑框)获取当前使用的标签组、标签页自动向上合并标签组左右拖拽排序(Qt自带)
2024-05-06 21:20:17 615 1
原创 《QT实用小工具·五十七》基于QT的语音识别
该文章实现了简单的语音识别功能,首先,语音识别要做三件事情 :1.记录用户的语音文件到本地 2.将用户语音编码 使用flac或者speex进行编码 3.使用第三方语音识别API或者SDK进行分析识别语音 目前做的比较简单就是使用flac文件对wav音频文件进行编码 基于Mac OSX和Win 7平台的 win 7下使用flac.exe,具体exe帮助,读者可以使用flac.exe --help > help.txt 重定向到一个help文件中,方便查阅. mac osx下面安装flac.dmg的安装包
2024-05-06 21:12:39 606 2
原创 《QT实用小工具·五十六》自适应界面变化的控件
该项目实现了网格显示多张带文字的图片在界面中自适应布局特点跟随窗口大小变换位置,并带移动动画响应鼠标事件,图片缩放动画点击水波纹动画
2024-05-05 12:23:25 486 1
原创 《QT实用小工具·五十五》带有标签、下划线的Material Design风格输入框
该项目实现了一个带有标签动画、焦点动画、正确提示、错误警告的单行输入框控件
2024-05-05 12:13:58 506 2
原创 《QT实用小工具·五十三》会跑走的按钮
该项目实现了会逃跑的按钮:两个按钮,一个为普通按钮,另一个为会跑走的按钮鼠标移到上面时,立刻跑掉针对鼠标、键盘、触屏进行优化随机交换两个按钮的文字、偶尔钻到另一个按钮下面、鼠标移开自动重置到原来状态
2024-05-04 14:34:20 462 1
基于C++开发的字体轮廓的获取和生成轮廓的BMP文件+源码(毕业设计&课程设计&项目开发)
2024-08-23
基于java实现的非自交多边形的轮廓内缩外扩算法+源码+项目文档+算法解析(毕业设计&课程设计&项目开发)
2024-08-23
基于javaScript从高德地图爬虫获取建筑轮廓,生成geojson文件,mapbox定制自定义地图,echarts-gl生成
2024-08-23
基于python开发的引体向上计数+源码+视频demo演示(毕业设计&课程设计&项目开发)
2024-08-23
基于Qt+C++开发一个python编译器,能够编写,运行python程序+源码(毕业设计&课程设计&项目开发)
2024-08-21
基于Qt+C++实现的二维地图实时绘制框架+源码+项目文档+数据下载+界面展示(毕业设计&课程设计&项目开发)
2024-08-19
基于Qt+C++开发的Modbus串口调试助手+源码+项目文档+界面使用展示(毕业设计&课程设计&项目开发)
2024-08-19
基于Qt+C++实现的虚拟键盘+源码(毕业设计&课程设计&项目开发)
2024-08-19
基于Qt+C++开发的图书管理系统+GUI界面+源码+项目文档+课题报告(毕业设计&课程设计&项目开发)
2024-08-19
基于Qt C++实现的王者荣耀风格的连连看游戏+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-19
基于Qt+C++实现的跨平台360 GUI桌面应用+源码(毕业设计&课程设计&项目开发)
2024-08-19
基于FFmpeg+QT+C++实现的摄像头rtsp实时显示+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-19
基于java开发的单页显示3个Item的ViewPager炫酷切换效果,适用于Banner等+源码+项目文档+效果展示
2024-08-19
基于java开发的APP界面显示等待加载状态的View效果+源码+项目文档+效果展示(毕业设计&课程设计&项目开发)
2024-08-19
基于java开发的仿365的日历显示+源码+项目文档+运行效果(毕业设计&课程设计&项目开发)
2024-08-19
基于Jupyter+python开发的高考作文精准预测+源码+项目文档+数据集+训练+使用教程(毕业设计&课程设计&项目开发)
2024-08-18
基于python开发的用户预订售卖房型概率预测+源码+数据集+文档(毕业设计&课程设计&项目开发)
2024-08-18
基于HTML+Web+python开发的股票预测系统+源码+项目文档+数据集+使用说明(毕业设计&课程设计&项目开发)
2024-08-18
基于python实现无人机的光伏面板故障检测+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-18
基于python+Jupyter实现的光伏发电功率预测+源码+数据集+算法解析(毕业设计&课程设计&项目开发)
2024-08-18
基于STM32F103 蓝牙/OneNet云平台 WIFI的自动窗帘控制系统+源码+硬件(毕业设计&课程设计&项目开发)
2024-08-18
基于javaScript+SSM开发的二手跳蚤市场+源码+项目文档+运行教程(毕业设计&课程设计&项目开发)
2024-08-18
基于java开发的跳蚤市场APP+源码(毕业设计&课程设计&项目开发)
2024-08-18
基于javaScript开发的动态计算视频总时长+源码
2024-08-18
基于html开发新浪微博的面向食品安全的舆情话题检测与追踪系统+源码(毕业设计&课程设计&项目开发)
2024-08-14
基于C#开发的食品进销存管理系统(基于WinForm的C/S结构)+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-14
基于javaScript开发的食品农产品交易小程序+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-14
基于python开发的字轮式自来水水表识别的项目+源码+文档(毕业设计&课程设计&项目开发)
2024-08-14
基于python+YOLO+FCSRN开发的自动识别自然场景水电表数字+源码+文档(毕业设计&课程设计&项目开发)
2024-08-14
基于python+深度学习开发的水表识别项目,一个定位网络,一个识别网络+源码+文档(毕业设计&课程设计&项目开发)
2024-08-14
基于javaScript+java+springboot开发的咖啡店网站+源码(毕业设计&课程设计&项目开发)
2024-08-14
基于BootStrap+JSP+Servlet+Mysql的模拟咖啡厅点餐系统+源码+项目文档+使用教程(毕业优秀项目)
2024-08-14
基于python开发的目标检测数据集标注工具+源码+项目文档+使用教程(毕业设计&课程设计&项目开发)
2024-08-14
基于Java开发的门禁监控大屏显示系统+源码+开发文档(毕业设计&课程设计&项目开发)
2024-08-13
基于C语言+nRF52832实现的控制蓝牙门锁系统+源码+文档(毕业设计&课程设计&项目开发)
2024-08-13
基于python开发的极光验证码,专为反爬虫而生,值得拥有+源码+项目文档(毕业设计&课程设计&项目开发)
2024-08-13
基于C#开发的倍加福激光雷达反光柱定位+源码(毕业设计&课程设计&项目开发)
2024-08-13
基于python实现的高光谱遥感影像识别与分类+源码+项目文档+使用教程(毕业设计&课程设计&项目开发)
2024-08-13
javaScript+html+css实现基于WebGIS的水质遥感监测平台+源码(毕业设计&课程设计&项目开发)
2024-08-13
基于Python+GDAL实现通过矢量裁剪遥感图像+源码(毕业设计&课程设计&项目开发)
2024-08-13
C++调用python的jedi库问题
2024-06-28
QT中信号继承的问题
2021-05-18
MTP协议下的WPD数据传输
2021-03-30
C++释放动态内存空间问题
2021-02-03
C++多继承下多态内存释放问题
2021-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人