- 博客(59)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 Qt设置右键菜单无效customContextMenuRequested(const QPoint &pos)
想着先声明QMenu然后根据右键的不同类型节点弹出不一样的菜单,结果这样一直无法显示菜单。调试发现代码是按照预想的逻辑走的,后面想起一种可能:QAction在if里面定义,离开if的时候,QAction对象已经被释放掉了。再次运行,果然没问题了,又学到了。
2024-03-07 18:09:50
717
原创 解决QMYSQL driver not loaded问题
把源码解压到qt安装路径下,打开\qtbase\src\plugins\sqldrivers\mysql,用Qtcreator打开mysql.pro。这时还需要把\MySQL\MySQL Server 8.0\lib目录下的libmysql.dll和libmysql.lib复制到\5.15.2\msvc2019_64\bin目录下。一查才发现\5.15.2\msvc2019_64\plugins\sqldrivers目录下没有qsqlmysql了,5.5.1是有的,5.15.2是要自己编译的。
2024-03-06 10:45:48
508
原创 1.3 vue ui框架-element-ui框架
0的桌面端组件库,ElementUI提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。3.2 修改src/components/HelloWorld.vue代码如下。会在node_modules文件夹下生成element-ui子目录。在cmd运行命令npm run dev 然后访问。-S表示只在该项目下安装,不是全局安装。ElementUI是一套基于。注意:要跳到项目所在目录运行。ElementUI官网。
2024-02-29 17:59:56
704
原创 1.1 创建第一个vue项目
cmd命令窗口运行注意,hellovue是项目名称,项目名称不能保存大写字母否者会报错运行设个命令的时候可能会报错,根据提示先运行然后重新运行创建项目命令即可。选择NPM进行创建。
2024-02-29 17:56:05
443
原创 C++实现计算复杂数学表达式
本文使用C++实现Shunting-yard算法,将中缀表达式转换为后缀表达式,然后使用后缀表达式计算结果,实现了目前支持以下。的组合,实现代码如下。
2024-02-29 17:50:47
485
原创 1.0 vue环境安装
虽然nodejs自带npm,但是在国内由于网速的限制可能下载一些组件包会比较慢,所以可以根据自身情况安装并使用淘宝cnpm镜像(国内使用下载速度比较快)代开cmd命令窗口输入 node -v,如果看到了刚才下载的版本号,则表示已经安装成功。运行命令vue -V,注意 这里是大写的V。3、安装vue-cli(vue脚手架)1.3 检查nodejs是否安装成功。2.1 在cmd命令窗口中运行命令。普通的安装过程,也记录下吧。2.2 检查是否安装成功。3.2 检查是否安装成功。vue环境便算搭建好了。
2024-02-23 18:31:44
433
原创 QT打开mdb文件失败问题
需要注意的是安装了32位的office无法安装64位的驱动,64位的程序必须要有64位的驱动,所以要想正常打开mdb文件,需要卸载32位的office再安装64位的驱动。这种情况下是要安装access数据库驱动并重启电脑的。该死的微软,太垃圾了。
2024-02-23 11:21:30
457
原创 Qt编译报错:The slot requires more arguments than the signal provides.
编译时代码没有提示错误的地方,报错的地方在qt的文件,还以为什么莫名其妙的错误呢,原来就是连接的信号和槽函数参数不匹配,有个信号是没有参数的,但我的槽函数有个参数,然后就报错了。但有个问题,这个报错,可能是任何一个信号槽的错,而且可能不止一个,要一个个信号槽检查,比较蛋疼,还是写代码的时候多注意下信号的参数列表,别搞错,信号槽一多就很难排查。改下槽函数的参数就行。
2024-02-23 11:15:49
855
原创 ubuntu上安装mosquitto服务
Mosquitto 项目最初由 IBM 和 Eurotech 于 2013 年开发,后来于 2016 年捐赠给 Eclipse 基金会。Eclipse Mosquitto 基于 Eclipse 公共许可证(EPL/EDL license)发布,用户可以免费使用。作为全球使用最广的 MQTT 协议实现之一 ,截至 2023 年 3 月,Mosquitto 的 GitHub Star 数超过了 7.1 K。Mosquitto 用 C/C++ 编写,采用单线程架构。
2023-08-07 11:30:19
2526
原创 VMWare共享windows文件夹到Ubuntu虚拟机
1、Windows下设置共享文件右键目标文件夹 - 属性 - 共享共享(S)... - 查找用户 - 选择Everyone - 添加 - 选中 - 共享(H)2、修改共享设置控制面板 - 网络和Internet - 网络和共享中心 - 更改高级共享设置专用网络设置所有网络设置3、安装vmware-tools组件虚拟机 - 安装VMware-tools安装后ubuntu会加载一个虚拟光驱,解压文件,在解压的文件目录下执行以下命令进行
2022-05-19 16:00:59
2367
原创 QT插件开发学习笔记
看了一天,总结了下,可能有理解不到位的地方,仅供参考。我的理解插件开发主要分三块,插件接口,插件,主程序,uml如下图所示。1、插件接口插件接口主要关联接口和标识符,并提供声明一些通用辅助函数。#ifndef PLUGININTERFACE #define PLUGININTERFACE #include <QString> // 定义接口 class PluginInterface { public: virtual ~PluginInterface() {} virtual
2022-04-11 10:35:45
640
原创 navicat 连接Ubuntu虚拟机的mysql
1、查看虚拟机的ip在虚拟机打开终端,输入命令ifconfig2、授权mysql远程访问在终端输入命令(配置文件可能会因为版本不同,路径会有点差别)sudo vim /etc/mysql/conf.d/mysql.cnf键入"i"开始编辑,修改bind-address = 0.0.0.0(设为可被外部访问,如果设成127.0.0.1则只能本地访问。)esc键退出编辑,输入":wq"保存并退出。然后登陆MySQL更改权限mysql - uroot -p
2022-03-31 10:57:20
3033
2
原创 AcDbAlignedDimension部分组件显示设置
①、②尺寸界线,由setDimse1、setDimse2控制显隐③、④箭头,setDimsd1、setDimsd2控制显隐,也同时控制⑤尺寸线显隐
2021-12-30 17:42:01
471
原创 ObjectArx获取实体周长
以下方法只能用于继承于AcDbCurve的类型主要使用两个接口派生类中此函数的实现应返回, 并将endParam设置为曲线端点的参数。如果成功则返回Acad::eOk。默认情况下, 该函数返回Acad::eNotImplemented。 virtual Acad::ErrorStatus getEndParam(double&endParam) const;计算从曲线的起点到param指定的点的曲线段的长度。如果成功则返回Acad::eOk, 如果param超出范围则...
2021-12-30 10:00:35
732
原创 ObjectArx块内元素显示排序
1、AcDbSortentsTable1.1、类简介AcDbSortentsTable是绘制订单信息的持久容器。它位于关键的ACAD_SORTENTS下的关联AcDbBlockTableRecord的扩展字典中。AcDbSortentsTable包含一组对象ID /句柄对。对象ID是要绘制的实体的对象ID, 并且句柄是块表记录中的实体的句柄(通常但不总是与关联的对象ID不同), 其表示绘制顺序中的位置。实体按递增句柄值的顺序附加到块表记录中; 换句话说, 句柄值越高, 它就越晚出现在块表记录中.
2021-12-30 09:56:27
960
2
原创 Mysql8.0安装、配置
1、下载个人不喜欢到甲骨文官网下载,需要登陆账号,重设好多次密码了都不记得,下载速度还贼慢,国内有镜像网站,可以非常方便下载,各个版本都有。mysql8.x的下载地址是Index of /mysql-ftp/Downloads/MySQL-8.0/中国科学技术大学开源软件镜像2、安装没啥好说的,就跟则向导安装就行,如果需要设置安装路径,就选则costom,否则选择typical就行了3、配置3.1、添加配置安装完成之后默认是任何配置文件,我还以为是安装过程出了问题呢,新建一个my
2021-10-28 15:23:31
385
原创 QT dll项目使用MFC编译问题
做了一个Qt的dll,用与做cad插件的一个控制界面,因为要想cad发命令,不可避免的需要用到MFC的东西,但是在写好demo后编译程序却一直报错,如下图:提示需要定义_AFXDLL在属性 - C/C++ - 预编译器 - 预编译器定义 添加_AFXDLL,问题解决但是_AFXDLL是个什么玩意来的呢...
2021-08-18 09:29:10
130
原创 ObjectArx 设置填充透明度问题
初始化透明度参数AcCmTransparency对象时,需要调用setAlpha设置透明度值,这里传入的值是0~255,但cad特性面板上显示的是0~90,且经过测试发现,传入值与特性面板显示的值也是不同的,比如传入90,显示64,百度搜索了个寂寞,最后还是在谷歌找到了答案,原来设置的值和特性面板显示的值有个转换关系:int alpha = (int)(((255-value)*100)/255);所以要在设置透明度之前把值做下转换,像这样// 设置填充透明度AcCmTransp...
2021-08-16 17:45:17
424
原创 pdfium实现pdf转图片
编译好的pdfium库64&32位下载:链接:https://pan.baidu.com/s/18TIg_2QutYJ8_imIIgLoRg提取码:xyij需要依赖以上库文件,里面包含64位和32位的库文件,是从一位大神那里要来的,pdfium编译太难了。直接上代码,注释写的很详细,不再赘述。char * getFileContents(const char *fileName, size_t *size){std::fstream instream;instrea..
2021-05-19 10:56:37
2874
2
原创 QMessageBox设置中文按钮
QMessageBox *msgBox = new QMessageBox(QMessageBox::Question, QSW("确认删除"),QSW("是否删除?"), QMessageBox::Yes | QMessageBox::No, parent);msgBox->button(QMessageBox::Yes)->setText(QSW("删除"));msgBox->button(QMessageBox::No)->setText(QSW("取消"));
2021-05-11 10:59:01
330
原创 MFC打开文件选择对话框
bool ret = false;// 打开文件选择对话框CFileDialog dlgFile(TRUE, // TRUE则显示打开对话框,FALSE则显示保存对话文件对话框。NULL, // 默认的文件扩展名NULL, // 默认的文件名OFN_HIDEREADONLY, // 指明一些特定风格。 (默认OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT)_T("图片 (*.jpg)|*.jpg|所有类型 (*.*)|*.*||"), // 设置可供
2021-04-26 16:50:30
597
原创 MFC遍历文件夹(递归)
CFileFind finder;BOOL bWorking = finder.FindFile(zipPath + _T("\\*.*"));while(bWorking){ bWorking = finder.FindNextFile(); CString strPath = finder.GetFilePath(); if(finder.IsDirectory() && !finder.IsDots()) { // 文件夹递归调用...
2021-04-26 16:48:25
550
原创 MFC获取注册表值
/*!* @brief 获取指定注册表路径的键值** @param const CString& path 注册表路径* @param const CString& key 字段名* @param [out] CString& value 获取到的返回结果* @return bool 成功获取返回true** @author 刘杰达* @date 2020年11月19日*/bool _getRegValue(const CString&am
2021-04-26 16:46:33
607
原创 MFC下实现压缩和解压缩功能
解压zip库(解决文件名中文乱码问题).zip,将zip.h,zip.cpp,unzip.h,unzip.cpp添加到你的项目下,下面是一个封装了简单压缩和解压的方法,注释已经很详细了,不再赘述。递归压缩文件夹和文件 /*! * @brief 将一个文件夹下的文件添加到压缩文件 * * @param const HZIP& zip 压缩操作对象 * @param const CString& zipPath 被压缩的文件或文件夹路径 * @param...
2021-04-26 15:26:07
2778
6
原创 MFC下载网络文件到本地计算机
此方法依赖wininet.lib属性 - 配置属性 - 链接器 - 输入 - 附加依赖项 - 编辑实现代码如下#include "WinInet.h"#define MAXBLOCKSIZE 1024/*!* @brief 下载一个文件到本地计算机** @param const CString& url 文件链接* @param const CString& savePath 文件保存到本地计算机的文件夹路径** @return bool 下载成功
2021-04-26 14:47:52
437
原创 win10查看已连接WiFi密码
打开【控制面板】 - 【网络和共享中心】 - 【更改适配器属性】双击WLAN或右键选择状态打开【无线属性】 - 打开【安全】选项 - 勾选显示字符
2021-03-29 11:15:21
98
原创 ocx中添加接口
1、打开类视图将鼠标移动到菜单栏 - 视图(V) - 点击类视图2、打开添加接口向导展开【项目名称 】- 展开【项目名称Lib】 - 右键【_D项目名称】 - 将鼠标移到【添加】选项 - 选择【添加方法(M)...】3、设置接口信息设置函数【返回类型】 - 设置【方法名】 - 设置内部【内部名称】 - 设置【参数类型】 - 点【完成】注:方法名对应的是对外暴露的接口名,内部名称是项目内部的实现函数名称,一般设置为一样的比较好找接口可设置多个参数,选择【参数类型】 - 选择
2021-03-22 09:56:51
545
原创 C++的几种char类型
在C++中,char是基本的字符类型,但却不仅仅有这一种字符类型! 类型 含义 该类型数据所占的最小比特位数 char 字符 8位(即可表示28个字符) wchar_t 宽字符 16位 char16_t Unicode字符 16位 char32_
2021-01-26 15:37:38
5519
原创 将一个多段线按一些点分割成一个或多个线段
函数原型:virtual Acad::ErrorStatus getSplitCurves( const AcGePoint3dArray& points, AcDbVoidPtrArray& curveSegments) const;参数:const AcGePoint3dArray& points 在曲线上的分割点数组(在WCS坐标中)AcDbVoidPtrArray& curveSegments 返回带有指向原始子曲线...
2021-01-06 16:33:56
1729
原创 ObjectArx 文本获取文字的实际宽度
在给一个文本实体套一个图框的时候发现实体的宽度是固定的,并不是文字的实际占用尺寸通过getGeomExtents获取到的坐标是实体的实际坐标,如果用这个结果框一个图框,可能会在框内留出比较多的空白空间,多行文本AcDbMText需要用actualWidth,单行文本AcDbText需要用到widthFactor。/*! * @brief 获取文本实体真实宽度 * * @param const AcDbObjectId& id 文本实体id * @return double 返回文本
2020-12-07 10:39:26
1758
原创 测试ocx(MFC ActiveX控件)
通过创建一个ocx项目编译后可以生成以下文件其中testCtl.ocx就是我们最终需要的插件可以通过cmd命令将控件注册到本地电脑regsvr32 D:\code\testCtl\Debug\testCtl.ocx为u了方便也可以写到批处理文件中,下次使用的时候直接双击批处理文件就可以了注销命令是regsvr32 /u D:\code\testCtl\Debug\testCtl.ocx测试ocx有两种方式1、使用VS自带的控件容器tstcon32来测试(可以使用eve
2020-11-25 09:46:36
1388
原创 创建一个ocx项目
本次笔记使用的工具是vs20131、文件 - 新建项目 - 已安装 - 模板 - Visual C++ - MFC - MFC ActiveX 控件,如下图,点击确定2、MFC ActiveX 控件向导,点击下一步(直接点击完成也可以)3、应用程序设置,默认设置就好,点击下一步4、控件名称,设置控件名(注册以后可以再“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes”下找到对应名称控件)5、控件设置,根据需要修改,测试demo默认就行
2020-11-25 09:37:08
228
zip库(解决文件名中文乱码问题).zip
2021-04-26
Qt实现的简单处理pcm裸流的demo
2020-06-19
showBanner.rar
2019-08-23
QAxWidget 如何获取当前页面url?
2020-03-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人