自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (7)
  • 收藏
  • 关注

原创 python镜像源

备忘

2022-10-19 09:25:12 445 1

原创 结构体Struct对齐

#pragma pack(4)typedef struct{ int8_t a; int32_t b; int8_t c; int8_t d; int16_t e[10];}TestStu;#pragma pack()以上定义的结构体,测试的时候,使用sizeof()函数求取size的时候,在不添加pragma pack()得到的size是32pack的值依次为1、2、4的时候,得到的size依次为27、28

2021-12-21 16:22:28 167

翻译 地图生成器--api

http://datav.aliyun.com/tools/atlas/index.html

2021-11-02 11:44:15 297

原创 关于std::thread资源释放问题

如果线程变量是非局部变量需要手动去进行释放线程资源。首先必须要有一个可以控制线程的标志位,比如变量,或者队列的结束符等。isstop = true;_thread->join();delete _thread;_thread = nullptr;才有无锁队列concurrentqueue实现线程控制数据,关于无锁队列,源码地址:https://github.com/cameron314/concurrentqueue//.h文件的部分定义struct Equeue_stu{ cha

2021-07-10 11:06:02 5687

原创 C++数据序列化(自定义结构体的保存和读取)

碰到一个需求,结构体数据需要保存下来,以便下次程序打开后再次加载。结构体存在嵌套。查找资料,确认可以通过文件的读写进行操作,FILE,fread和fwrite可以实现,以下是测试代码(使用模板实现相关功能)核心部分是template <class T>void write_dataToFile( T *t, const char *filePath)template <class T>void read_dataFromFile(T* t, const char *fi

2021-06-10 11:11:32 3596 7

原创 libhv---编译与安装

libhv提供了原生Makefile(这里仅指适用于类unix系统的Makefile)和cmake两种构建方式。根据开发者本人的博客进行编译安装,一直报错,测试发现是由于cmake中勾选了BUILD_EXAMPLES选项。不建议勾选案例,注意是案例中存在很多跨平台的代码,使用vs无法正常编译通过编译流程1、源码地址,下载解压项目地址:https://github.com/ithewei/libhv.git码云镜像:https://gitee.com/ithewei/libhv.git2、安

2021-06-03 11:20:45 1109

原创 Log4qt使用记录备忘

Log4qt基于Qt4实现的第三方日志记录文件,存在很多版本,我直接在官网下载的09年的版本,然后进行qt5适配。官网源码:https://sourceforge.net/projects/log4qt/ 下载的文件是log4qt-0.3.zip,解压即可。1.将log4qt的源码加到工程中,或者直接对log4qt进行编译,生成lib.dll文件,包含头文件进行动态库加载log4qt(使用的是前面的方法,后面方法主要是因为如果需要修改源码会比较麻烦,既然log4qt已经提供源码,就直接加入工程即可)

2021-05-31 16:58:15 255

原创 Qt Pro文件配置

CONFIG += build_all //同时编译所有模式(一般是debug,release)Debug:MOC_DIR += ./tmp/debug //moc文件存放目录Debug:OBJECTS_DIR += ./tmp/debug //obj文件存放目录Release:MOC_DIR += ./tmp/releaseRelease:OBJECTS_DIR += ./tmp/releaseDebug:DESTDIR +=./bin/debug //生成文件目录Release:

2021-04-08 17:11:26 127

原创 git下载地址

https://npm.taobao.org/mirrors/git-for-windows/

2021-04-08 16:22:46 161

原创 Qt连接数据库(Sqlite)报错 Driver not loaded解决方法

使用Qt 5.8//一个病人一个table m_pSqliteDatabase = new QSqlDatabase; m_pSqliteDatabase ->addDatabase("QSQLITE"); m_pSqliteDatabase->setDatabaseName("Patients.db"); //m_pSqliteDatabase->setDatabaseName(QApplication::applicationDirPath() + "/../database

2021-01-15 17:45:25 5858 2

原创 VTK--绘制角度

//vtkSmartPointer<vtkAngleWidget> angleWidget = vtkSmartPointer<vtkAngleWidget>::New(); vtkAngleWidget* angleWidget = vtkAngleWidget::New(); angleWidget->SetInteractor(this->GetRenderWindowInteractor()); vtkSmartPointer<vtkAngleRe.

2020-12-23 19:01:30 335

转载 VTK--绘制文本

//绘制文本#include<vtkRenderer.h>#include<vtkPolyDataMapper.h>#include<vtkActor.h>#include<vtkRenderWindow.h>#include<vtkPolyDataMapper.h>#include<vtkFollower.h>#include<vtkVectorText.h>#include<vtkAxes.h&g.

2020-12-23 18:26:12 284

原创 vtk读取.dcm文件(医学影像文件)

VTK读取dcm文件(医学影像文件)的一个核心的知识点就是,窗宽窗位。知识点:窗宽/窗位的概念窗宽是图像显示的灰度范围。一般显示器的灰度范围为256级,而医学图像的灰度范围则远远大于该范围,因此通过显示器显示时不能显示所有灰度级,需要使用窗宽来定义欲显示的灰度范围。灰度值高于该范围的最大值时:白影。低于:黑影。比如,窗宽200,窗位100,则可视范围:0-200;窗位500,可视范围:400-600 QDialog *dlg = new QDialog(); dlg->resize(600

2020-12-23 18:10:50 1953

原创 devenv.exe应用程序错误 - 应用程序无法正确启动(0xc000007b)

不知道因为什么原因导致vs2015出现启动错误,如下图:****网上看过很多方法,都很麻烦,依据开发经验,一般应用程序报错0x000007b都是由于缺少dll导致。网上有一种方法是 使用工具depends查验exe缺少哪些dll,然后补上即可。这种方法太麻烦了,由于vs2015一般不会缺少必要的dll,其本身一旦缺少dll,而且其本身只依赖vc库。所以出现0x000007b报错,要么是误删,要么是缺的是vc的dll库。不确定是否是误删,直接重装vc_redist.x86.exe安装,自动补全相

2020-12-11 09:48:02 2075

转载 C++ std::string[] 数组长度

std::string string_array[] = {"qdfsdasdewqd","dsfcvxfdhtrh","dcv455"};int num = sizeof(string_array) / sizeof(string_array[0]);任何基本数组的个数都可以用“sizeof(数组名)/sizeof(数组某一项)”得到,一般都是 sizeof(string_array)/sizeof(string_array[0])测试:无论string[0]是什么内容,sizeof()得到的结果

2020-12-02 16:18:52 2595

转载 Visual Studio使用Qt的问题总结(1)

在使用别人的项目的时候,打开后,会发现直接编译会报错。首先解决Qt VS Tool无法使用的问题。打开工程的projec文件(后缀为vcxproj),找到Keyword字段的位置,你会看到该字段的值为QtVS_v303,修改其值Qt4VSv1.0,保存。重新生成工程。会Qt VS Tool会变成下图这个时候会发现编译报错都是Qt的一些相关的错误,这个时候需要点击选项 Convert Project to Qt VS Tools Project进行转换。再次打开会发现Qt VS Tools 选项

2020-11-26 10:28:09 1398

转载 桌面添加右键菜单

转载自:https://blog.csdn.net/qq_43596551/article/details/104274209作为笔记记录,如觉侵,请联我删桌面添加右键菜单话不多说,给大家瞧瞧我的桌面添加右键菜单。上图为菜单图现在,我以添加记事本作为桌面右键菜单为例实操如下:1.打开电脑注册表:首先 win + r 键打开运行窗口,输入 regedit 命令打开注册表:运行窗口2.找到注册表中的该路径:计算机\HKEY_CLASSES_ROOT\DesktopBackground\S

2020-11-12 10:17:03 244

原创 QPlainTextEdit使用小结(一)

QPlainTextEdit可用于日志显示信息,当遇到如图所示的现象的时候,我们需要进行覆盖显示。找了很久,只有介绍setOverwriteMode(bool)函数来实现,但是问题比较多。选择了一个新的方法实现该功能。基本逻辑,选择QPlainTextEdit的最后一个block(为了防止文本过长的自动换行导致最后一行是部分数据)并删除它,后续的新的block在删除的位置正常写入即可。逻辑简单,代码也简洁 QString msg = QString::fromLocal8Bit(qbt);

2020-10-26 15:23:38 2508

原创 Qt多线程两种实现方法

概述Qt提供了一个管理线程的类:QThread。一个QThread对象管理一个线程。所以可以形象的把QThread当成一个线程去使用。QThreads在run()中开始执行。默认情况下,run()通过调用exec()启动事件循环,并在线程内运行Qt事件循环。您可以通过使用QObject::moveToThread()将工作者对象移动到线程中来使用它们。这种方法您可以自由地将Worker的slot连接到来自任何对象、任何线程的任何信号上。由于有一种称为QueuedConnections的机制,在不同线程

2020-10-19 19:37:37 226

原创 protobuf学习(一)-- 安装protobuf

由于实际项目中使用到protobuf协议来实现相关功能,故研究一下protobuf源码下载:https://github.com/protocolbuffers/protobufcmake安装包下载:https://cmake.org/download/下载完成解压protobuf源码,默认安装cmake。步骤如上图,一般情况下会报错,会宝无法找到zlib文件。如果出现这种情况的话,就需要自己去找zlib的源码,用cmake重复上面的操作,进行,会生成zlib相关的文件完成后需要在cmake中对

2020-08-01 15:11:55 625 1

原创 Deepin应用商店打开后不显示(deepin 15.11)

打开应用商店后,界面是这样,查验过,网络正常,卸载重装仍旧无法解决。由于无法打开应用商店基本都是软件源的问题。1.deepin的官网去查看应用的软件源地址。会发现这样一句话:下面显示的是深度操作系统15默认软件源:deb [by-hash=force] http://packages.deepin.com/deepin stable main contrib non-free#deb...

2020-02-19 13:34:38 6252 1

原创 关于QGraphicsView中的相对坐标系自定义实现

需求:不采用QGraphicsView本身的平移和旋转是因为所有的item是自定义封装的,存在交互上的数据变化,如果采用Qt自带的转换会导致交互数据出现错乱实现思想:放弃了坐标系的概念,采用虚拟坐标系代替–坐标系不存在,但是体现在所有item的数据上;所有的数据都是原始坐标系,只是记录相对坐标系的值。实现步骤:当前坐标系的点----》需要被转换的坐标系的点----》原始坐标系的点简单...

2019-09-09 17:16:58 884

原创 QFlags实现枚举并列

Qt的很多属性参数都是可以通过或运算进行多属性设置,最典型的是左上,左|上如果是我们自己实现相应功能需要处理的enum Test{ a=0x01, b=0x02, c=0x04, d=0x08, e=0x10, f=0x20}Q_DECLARE_FLAGS(Tests,Test)Q_DECLARE_OPERATORS_FOR_FLAGS(Tests)使用的时候void...

2019-08-05 15:42:32 266

原创 关于回调函数(备忘)

void funcA( void (*callback)()){ callback(); qDebug()<<"AAAAAAAAAA";}void funcB(){ qDebug()<<"BBBBBBBBBBB";}回调函数主要利用函数指针实现的,上述代码是一个简单的回调函数实例。funcA函数接收一个指针(指针类型根据所需要调用的函数的返回值来设置,上面的...

2019-06-15 10:42:38 390

原创 processEvents()函数

在使用Qt的过程中,经常会碰到需要运行耗时的逻辑代码的时候,一般都采用多线程进行处理,这样可以保证主线程(界面)不会被占用,导致用户操作无效,出现等待无响应现象。Qt本身提供一个函数QApplication::processEvents()来处理。下面采用示例来进行解释processEvents函数的功能MainWindow::MainWindow(QWidget *parent) ...

2019-03-08 15:09:34 25407

翻译 Qt程序启动画面 QSplashScreen

参考帮助文档描述QSplashScreen是用于在应用启动的时候的闪屏的一个widget,这个widget通常是在应用启动后显示的。一般在应用需要很长时间才能加载显示主界面的时候使用这个类来处理(比如数据库,需要连接网络的应用等等)官方给予的示例 int main(int argc, char *argv[]) { QApplication app(argc, argv);...

2019-03-08 14:25:23 924 1

原创 QGraphicsItem的hoverMoveEvent()函数

QGraphicsItem的mouseMoveEvent()函数必须鼠标按下的情况下进行move才会触发。QWidget的mouseMoveEvent()函数可以通过设置setMouseTracking(true)在鼠标不需要按下的情况下,触发鼠标move事件。QGraphicsItem要实现鼠标不按下的情况下,获取鼠标move事件,可通过**hoverMoveEvent()来实现,可通过设置...

2019-01-18 14:26:00 6362 5

原创 Qt绘制圆弧实现

根据操作习惯,绘制圆弧只需要三点即可,需求背景:点击生成两点后,分别为起点和终点(圆弧的边缘点),第三次点击的时候为圆弧上的点话不多说,直接代码:(Pi = 3.1415926,m_center圆心坐标,m_r半径) //三点确定一个圆,硬解,可得到表达式(三点一线的时候,则无法形成圆) -- 直接网上搜索有对应的代码,https://blog.csdn.net/liyuanbhu...

2019-01-16 16:36:07 7107 4

原创 Qt多语言----QObject::tr()

tr()函数的参数只要是char*类型即可。 QString strTest = "测试"; QByteArray byteArray = strTest.toLatin1(); char * ch = byteArray.data(); this-&gt;setWindowTitle(QObject::tr(ch));...

2018-12-24 16:46:19 3017 1

原创 QGraphicsItem封装的直线控件(添加箭头)

最近在封装QGraphicsScene的很多控件,需要在绘制直线后,显示箭头表示方向,并且该直线的起点和终点可变化(箭头需要实时变化) qreal alph = atan2(m_pointF2.y()-m_pointF1.y(), m_pointF2.x()-m_pointF1.x()); painter-&gt;translate(m_pointF2); qreal a...

2018-11-29 17:27:13 6487 18

原创 QGraphicsView的缩放和拖动,以及缩放围绕鼠标所在点进行缩放

因为要实现一个功能是,拖动view所在的窗口,可以显示scene中所有的信息,在网上找了很多资料,都是在缩放后通过scrollView进行拖动的,但是这个拖动是有问题的,只是拖动对应的scrollView中的数据,这不是我要进行拖动可以看到出来viewport中的数据,还包括很多无法显示的scene的其他部分代码如下:.h#ifndef MAINWINDOW_H#define MAINWI...

2018-11-20 11:16:10 24827 12

转载 Qt QImage处理(灰度)

转载来自: http://www.cnblogs.com/Romi/archive/2012/12/03/2800039.html参考代码,又在其他地方找了相关的知识点,才了解代码的含义,不一一赘述,侵删 QImage *image = new QImage(&quot;:/1.jpg&quot;); QImage *grayImage = new QImage; unsigned ch...

2018-10-25 10:30:54 4239

原创 小程序学习之路--UI(1)

button.wxss/* pages/button/button.wxss */.container{ align-items: flex-start; justify-content: flex-start; padding: 0; margin: 10rpx;}.container button{ width: 95%; margin: 10rpx;}/*...

2018-10-15 15:56:04 140

转载 QGraphicsView 鼠标样式和QGraphicsItem的鼠标的样式

QGraphicsView和QGraphicsItem修改鼠标的光标形状,都可以使用this-&gt;setCursor()函数进行设置区别在于,QGraphicsItem中的this表示item,QGraphicsView 的this表示view在我进行对QGraphicsItem进行封装的时候,用到this-&gt;setCursor()进行item的鼠标的样式修改,正常是没有问题,但是...

2018-10-15 09:37:46 1448

原创 QGraphicsItem封装之mouseMoveEvent()

今天在测试别人遗留的bug的时候,发现一个细节,很容易忽略的问题,记录下在对基于QGraphicsItem的类进行封装的时候,出现一个问题,就是拖动或者涉及到mouseMoveEvent()函数的时候,会出现位置不准确,达不到理论的移动效果,(逻辑是正确的)是由于在重写的函数中添加了QGraphicsItem::mouseMoveEvent(event);这是我们的习惯导致的,Qt的QGra...

2018-10-12 15:58:18 2551 2

原创 QGraphicsView的在重载重绘函数时,绘制控件的注意事项(一)

在QGraphicsView中进行绘制的时候,注意坐标映射,mapToScene,mapFromScene等可以实现scene和view的坐标关系,但是在绘制控件的时候,不能涉及到w,h等长度概念,否则在scene和view进行映射的时候会发生不可预知的现象(scene和view之间坐标系不一致的时候)。如:在QGraphicsView的重绘函数中addRect,此时的Rectangle不能使用...

2018-10-09 08:48:53 2308

转载 Qt使Release版本可调试(转载)

转载自: https://blog.csdn.net/caoshangpa/article/details/62416302 只需在pro文件中加入QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGIN...

2018-06-26 14:49:14 1836

转载 数据结构学习

转载地址:http://www.cnblogs.com/skywang12345/p/3603935.html 学习备用

2018-06-05 14:18:41 157

原创 Qt的painter相关(针对QGraphicsItem和item中的绘制的坐标相关测试)

记录下自己在实际进行封装item的时候,出现的一个现象bug, 以自己实际的测试为标准: 封装绘制一个圆的控件的时候,直接对paint()函数进行重新,也对该 代码如下: painter-&gt;setPen(QPen(QBrush(penColor),0)); painter-&gt;drawEllipse(QRectF(m_x,m_y,m_width,m_height)...

2018-06-04 15:40:02 2296

原创 Qt绘图效率的测试(QGraphicsItem QGraphicsPointItem)

Qt在绘制point的时候,一般都直接调用addPoint()函数,但是在point数量达到一定程度的时候,会发生很严重的卡顿现象,比如,绘制10w个point,绘制100w个point(point的无序的) 以10w个point为测试, QTime time; time.start(); for(int i=0;i&amp;lt;100000;i++){ ...

2018-05-30 16:31:00 9414 13

pingProcess.zip

封装一个类,线程中ping功能实现,定时去ping某一个IP地址, 基于C++ Qt实现

2022-03-07

QGraphicsItem封装的直线控件(添加箭头)

基于QtC++封装的直线控件,带方向,可编辑。

2021-09-23

libhv.lib libhb.dll -- MSVC2015

包含libhv.dll libhv.lib 头文件,以及测试程序,

2021-06-07

log4qt(qt5版本)

log4qt 兼容Qt5版本,同时将对应自己实现的配置文件log.conf包含其中,提供参考

2021-05-31

MytreeView.zip

包含QTreeView自定义封装,支持右击事件触发相关操作,以及空白处触发菜单栏,mytreeview源码,测试代码

2021-01-28

TestThread.zip

C++基于无锁线程concurrentqueue实现后台保存图片,资源包含saveImage实现源码和concurrentqueue源码

2020-11-13

protobuf.lib zlib.lib

在研究学习到protobuf,将我整合protobuf的资源共享,google 的 protobuf 源码 以及 zlib源码生成的 lib文件 和 dll文件。生成的protobuf和zlib需要结合使用。

2020-08-01

空空如也

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

TA关注的人

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