自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (9)
  • 收藏
  • 关注

原创 重构 (改善既有代码的设计)思维导图

2021-04-09 11:35:57 385

原创 More Effective C++思维导图

2021-04-09 11:34:01 160

原创 网络编程(2)Http请求

网络编程(2)Http请求Http请求的方式HTTP 1.0 中定义了三种请求方法:GET , POST, HEAD方法,HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法http工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应

2021-04-09 11:04:07 176

原创 网络编程(1)Socket基础

网络编程(1)Socket基础参见学习地址Socket 是什么?**网络编程 **就是编写程序使两台联网的计算机相互交换数据。UNIX/Linux 中的 socket 是一个文件,使用socket()返回文件描述符有了文件描述符,我们就可以使用普通的文件操作函数来传输数据了,例如:用 read() 读取从远程计算机传来的数据;用 write() 向远程计算机写入数据。Windows 会区分 socket 和文件 ,Windows 就把 socket 当做一个网络连接来对待,因此需要调用

2021-04-09 11:02:03 157

原创 当你选择好目标后,请奋力前行

在坚持的过程中,总是有感到疲惫或彷徨的时候,此篇文字就是我在感觉感觉彷徨的时候写下的问题激励自己。博客断了大概有半年了,感觉不是因为没有时间,主要还是懒惰导致的,也感觉自己博客的认知角度还是比较低。感觉不能给阅读者带来相对的收益,内心针对写博客的彷徨的慢慢加深,慢慢的颓废掉写下去的勇气。我又只有去回顾自己留下的文字,来找寻继续下去的理由,我回看了我的博客《程序员的工匠精神何在?何来?》和《万事开头难》,找到新的东西。博客中虽然很多都是整理和阅读的笔记,虽然十分粗糙,但如果有一定的数量。我相信我一定能得到属

2021-04-09 10:47:14 110

原创 Qt 托盘的使用

入职的技术准备托盘的显示和相关的操作[Qt 自带例子](Examples\Qt-5.14.2\widgets\desktop\systray)技术要点包括,设置图片,设置tooltip,右键菜单,关闭处理,系统消息处理//创建QSystemTrayIcontrayIcon = new QSystemTrayIcon(this);//设置图片trayIcon->setIcon(icon); //setWindowIcon(icon);//设置tooltiptrayIcon->

2020-12-03 13:20:07 145

原创 Style(3):前置声明

Style(3):前置声明什么是前置声明在a.hpp中定义了一个类class test_a_t// a.hppclass test_a_t{ public: void funa(); void funb();}在b.hpp单元中我们需要使用 test_a_t类,本来的写法是这样的//b.hpp#include <a.hpp>class test_b_t{ test_a_t* test_a;public: test_a_t();}

2020-11-15 00:44:08 88

原创 Style(2):命名空间

命名空间为什么要有命名空间当项目的体积越来越大的时候,名词的相互冲突就会越来越大。导致不能准确的使用名词来表示类,方法,或变量的含义。所以引入了命名空间的概念来帮助开发者解决命名冲突的问题。eg:namespace pxi_100{ bool connect(); }namespace pxi_200{ bool connect(); }//不同设备的同一操作,在调用的时候就可以直接通过命名空间区分开来pxi_100::connect();pxi_200::conne

2020-11-07 01:01:35 1837 7

原创 Style(1):lambda表达式

Lambda表达式结构//原型:[ 捕获 ] ( 形参 ) { 函数体 }//例子auto capture_handler = [this](QWidget* widget, QString name) { callbacks_.capture_(parent_window_, widget, name);};//调用QWidget* widget_; QString name_;capture_handler(widget_,name_);说明捕获若变量满足下列

2020-11-07 00:23:11 154

原创 QActionGroup互斥不生效的问题

QActionGroup互斥不生效的问题问题描述我有一个单实例的QAction的集合actions_ 然后传入不同的QToolbar进行添加到不同的QToolbar实例中。其中使用到了QActionGroup将其中的单个QAction进行互斥的处理。当创建了多个Qtoolbar实例后,释放了其中一个实例,其他QToolbar的QActionGroup互斥就不生效了。之前的实现方式 action_group_ = new QActionGroup(toolbar_); t

2020-11-04 21:42:05 804

原创 处理qml 加载到quickQwidget中没办法切换输入法的问题

处理qml 加载到quickQwidget中没办法切换输入法的问题直接上代码class custom_widget :public QQuickWidget {public: using Supper = QQuickWidget; custom_widget() { connect(quickWindow(), &QQuickWindow::activeFocusItemChanged, this, &custom_widget::onActiveF

2020-10-23 23:08:42 880 2

原创 Qt自定义MessageBox窗口

Qt自定义MessageBox窗口必要元素及其功能标题栏(表头,关闭按钮,自由拖动)内容(不同的图片,提示内容,取消确认按钮)状态阻塞式的模态窗口#pragma once#include <QDialog>#include <QObject>#include <QLabel>#include <QPushButton>#include <QToolButton>#include <QMouseEvent>c

2020-10-17 21:30:46 761

原创 Qt 利用QFileDialog实现一个带预览功能的文件选择预览界面

Qt 利用QFileDialog实现一个带预览功能的文件选择预览界面需求描述实现一个文件预览的功能,FileDialog中切换不同的文件,能将文件中我们需要展示的信息显示出来。在实现过程思路就是利用Qt自带的QFileDialog 以 Qwidget 的方式添加到新的 QDialog 中,然后新增一个预览区域的QWidget来实现具体预览交互功能,在实现过程中遇到如下问题:由于 使用了qss文件进行界面优化,QFileDialog部分控件有效果,十分不协调。需要实现的功能点QFileDial

2020-10-16 15:43:55 3100

原创 VS2019 重新安装QT_VS_tool

VS2019 重新安装QT_VS_tool我的vs2019 无法安装和卸载插件解决无法安装插件的问题,需要找到vs_installer.exe的路径(一般在C:\Program Files (x86)\Microsoft Visual Studio\Installer中,)点击窗口报错为error loading vs_installershel.exe主题中没有签名。步骤如下一般出现这种情况Installer文件夹下会有一个备份的文件夹 保存之前的Installer文件夹内容,点击vs_ins

2020-10-16 15:42:35 7724 2

原创 认识返回值机制,提高程序效率

认识返回值机制,提交程序效率返回值机制函数将返回值赋值到指定的CPU寄存器或内存单元中调用程序查看该内存单元返回函数和调用函数必须就该内存单元中存储的数据的类型达成一致将内存值拷贝到调用函数对应值的内存中...

2020-09-13 22:58:37 138

原创 Qt实现一个类似qq的公共信息提示框(非模态,单例模式)

Qt实现一个类似qq的公共信息提示框需求要点:单例模式半透明自动消失 与消失动画实现思路:首先在实现单例模式的时候,需要注意处理的问题:私有化构造方法和复制方法。然后给出一个调用接口get_instancewidget支持半透明问题处理:// 如果这个QWidget直接show,是有背景色的,但是如果放到一个父Widget中时,它就没有了效果。添加如下代码后就可以了:this->setAutoFillBackground(true);//但结果表明没有效果 所以我直接使用

2020-09-13 22:55:23 356

原创 设计模式学习(3)模式分类

设计模式学习(3)模式分类从封装变化角度对模式分类组件协作:通过晚期绑定,来实现框架与应用程序之间额松耦合,是二者之间协作时常用的模式Templete Method (模板方法)Strategy(策略模式)Observe / Event(观察者模式)单一职责:类与类之间责任划分的问题DecoratorBridge对象创建:Factory MethodAbstract FactoryPrototypeBuilder对象性能:SingletonFlyweight

2020-08-27 23:20:29 136

原创 设计模式学习(2)设计原则

设计模式学习(2)设计原则面向对象设计,为什么?变化是复用的天敌,面向对象设计最大的优势就是抵御变化对象是什么?从语言实现层面来看,对象封装了代码和数据从规格层面讲,对象是一系列可被使用的公共接口从概念层面讲,对象是某种拥有责任的抽象依赖倒置原则(DIP)高层模块(稳定)不应该依赖于底层模块(变化)二者都应该依赖于抽象(稳定)抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)总结:(变化)应该依赖于(稳定),从而实现隔离变化开发封闭原则(OCP)对扩展

2020-08-26 23:31:49 89

原创 忙得飞起的一个月

忙得飞起的一个月正文吐槽写下这篇博客的主要动力来源于,想坚持写下去。但又因为这个月忙得飞起,没有真正静下心来,整理一些东西。加上整个一个月的匆匆忙忙,做一次简单的总结对自己来说也是很有必要的。但对读到这篇文章的人,可能作用就不是那么大了。接下来,就开始我凌乱的描述。忙得飞起,是因为我又加入了一家新公司,这是入职的第一个月。涉及的行业,完全和我之前的工作经验没有半毛钱关系,可能他们唯一看重的就是的学习状态和那么短暂的Qt Quick的开发经验。为我们现在使用的和Qt Qucik的开发框架关系不大。主要还

2020-08-07 23:13:29 156 1

原创 C++学习案例(一)bitset 和map的使用

文章目录bitset 和map的使用案例需求描述技术支持思路分析技术拓展效果截图代码附录bitset 和map的使用案例需求描述在界面中增加一个combobox,记录添加的标记值,标记值是一个有序的序列(MR,M1,M2,M3,M4),能进行添加,删除,和清空combobox中的任意值。在添加的时候一定按照序列,比如当存在MR M1 M2 M3时,先删除了M2,此时的序列为MR M1 M3,点击添加此时应该添加M2 再点击添加就是添加M4。技术支持bitset 用于做序列标记,这个地方可以使用ar

2020-07-19 00:39:26 430

原创 人月神话(13,14,15)整体部分 祸起萧墙与另外一面

人月神话(13,14,15)整体部分 祸起萧墙与另外一面思维导图整体部分剔除bug的设计关键的工作是产品定义。许许多多的失败完全是因为那些产品未精确定义的地方而导致的细致的功能定义,仔细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的bug数量测试规格说明在编写任何代码之前,规格说明必须提交给外部测试小组,以详细地检查说明的完整性和明确性自上而下的设计作用:尽管他的理念是为程序设计,也完全适用于复杂的系统的软件开发设计。他将系统开发划分为体系结构设计,设计实

2020-07-04 00:29:54 462

原创 QSS 样式表遇到的坑

QSS 样式表遇到的坑去掉 QToolBar上的分割线QToolBar{ background-color: #333333; border: none; padding: 1px;}QToolBar::separator { width: 0px; background-color: #222222;}/*必须要增加了QToolBar::separator 节点才会生效*/设置QToolbar的字体颜色和大小 需要设置QToolButtonQToolBu

2020-07-03 23:31:10 568

原创 QMainwindows 中QToolbar的QSS样式表和相关设置

QMainwindows 中QToolbar的QSS样式表和相关设置QMainwindows 中使用了Dock widget area 去掉Qmenu和QToolbar的分割线通过QSS样式表的方式才能解决/*StyleSheet样式表*/QToolBar{ background-color: #333333; border: none; padding: 1px;}QToolBar::separator { width: 0px; background-color

2020-07-03 23:25:29 4956

原创 人月神话(12)干将莫邪

人月神话(12)干将莫邪思维导图概要每个团队配备一名工具管理人员。这个角色管理所有通用工具,能指导他的客户和老板如何使用工具,同时他还能编制老板需要的专业工具机器支持可以有效地划分成目标机器和辅助机器目标机器时软件所服务的对象,程序必须在该机器上进行最后测试辅助及时在哪些在开发系统中提供服务的机器使用高级语言的主要原因是生产率和调试速度目标机器目标机器的类型?(没有找到明确答案)进度安排有计划的安排共享资源的占用,虽然会降低资源的利用率但生产效率一定会提供冲刺极端或者是应急措

2020-06-26 00:18:44 628

原创 人月神话(11)未雨绸缪

人月神话(11)未雨绸缪思维导图试验性工厂和增大规模化学工程师已经认识到无法一步将实验室工作台上的反应过程移到工厂中,需要一个试验性工厂(pilot plant)来为提高产量和在缺乏保护的环境下运作提供宝贵经验。一个接一个的软件项目都是一开始设计算法,然后将算法应用到待发布的软件中,接着根据进度把第一次开发的产品发布给顾客必须构建一个试验性的系统的原因?将原型发布给用户的优缺点!优点:可以获得时间,但是代价高昂缺点:1、对于用户,使用起来及其痛苦缺点:2、对于重新开发的人员,分散了精力

2020-06-21 13:43:17 317

原创 人月神话(10)提纲挈领

人月神话(10)提纲挈领思维导图文档的作用文档的某些部分包含和表达了一些管理方面的工作每份文档的准备工作集中考虑,并使各种讨论意见明朗化的主要时刻避免无休止的混乱状态文档的跟踪维护是项目监督和预警的机制文档本身可以作为检查列表、状态控制,也可以作为回报的基础计算机产品文档目标:定义待满足的目标和需要,定义迫切的资源,约束和优先级技术说明:计算机手册加性能规格说明。它是在计划新产品时第一个产生,并且最后完成的文档进度预算:不仅仅是约束,它的存在迫使其制定技术决策。组织机构图

2020-06-21 11:05:06 421

原创 Qml 自定义皮肤控件,支持颜色的方式换肤

Qml 自定义皮肤控件,支持颜色的方式换肤(以后会持续更新)关注我博客的同学,一直觉得我在提供的代码中,有很多自定义的控件,导致代码没得办法直接被使用。之所以没有在之前的博客里面没有把哪些自定义的代码提供出来,是因为我这边一直还没有整理完成,也没有按照我想要的框架搭建完成。今天我将这皮肤控件终于基本修改完成,只是每个控件展示Dome还没有建立完成。但是我会持续优化我的这个皮肤库,用最为简单的方式提供给大家学习和交流。github地址基本说明本代码库,就是搭建了一个qml的界面控件库,现在暂时只支持颜

2020-06-21 01:37:03 958

原创 QML Text文字的自适应居中 、行间距、自定义messagebox

QML Text文字的自适应居中 、行间距、自定义messagebox需求自定一个messagebox,用来弹出提示消息。其中主要用到的技术一个技术就是文字的自适应居中,和行间距的设置。自适应变高(为完成,因为我们要统一窗口大小)。第一种方案/** *author : Teacher zeng *Create data : 2020.06 *functional description: 自定义一个消息弹框,这个弹框不是阻塞方式, *

2020-06-17 23:22:55 4401

原创 Qt MouseArea 使用移动效果

Qt 中MouseArea 的hoverEnabled使用hoverEnabled属性:此属性保持悬停事件是否得到处理hoverEnabled 为 false (默认情况):仅在响应按钮事件或按下按钮时处理鼠标事件。hoverEnabled 为 true (悬停允许) :处理所有鼠标事件,即使没有按下鼠标按钮。主要影响:containsMouse属性onEntered()信号onExited()信号onPositionChanged()信号eg:在我们开发控件的时候我们都需要根据控件的

2020-06-14 20:54:39 566

原创 基于git工具的代码管理方案

基于git工具的代码管理方案git是一个十分简单的工具,里面有各种复杂的功能。但是针对每个团队,又有着必须要的功能,和一些不必要的功能。为此我结合我们公司团队的规模,和项目模块划分,人力等因素设计了一套简单实用的git管理源代码的方案方案需求应对线上包,能及时处理相关用户反馈和bug修复。开发各个版本可以同时进行,减少相互之间的影响。代码回溯,bug追踪等基本功能。针对现在存在模块耦合性大,合并的效率,需求作用域等问题的优化关键词在实际设计的简洁方案中,主要使用到git的这些关键分支和功

2020-06-14 01:41:50 416

原创 人月神话(8,9)胸有成竹与削足适履

人月神话(8,9)胸有成竹与削足适履文章目录人月神话(8,9)胸有成竹与削足适履思维导图胸有成竹备注数据图削足适履作为成本的程序空间规模控制三个道理空间技能功能交换尺寸空间——时间折中数据的表现形式是编程的根本思考思维导图胸有成竹讨论主题:系统编程需要花费多少时间?结论:工作量是规模的幂函数。指数值为1.5 (1.5 就是先三次方,然后开根号)备注1.控制程序的生产率大约是600指令每人年,语言翻译大约是2200指令每人年2.生产率会根据任务本身复杂度和困难程度表现出显著差异3.指导原

2020-06-14 01:28:39 383

原创 交互平衡猜想

交互平衡臆想题记提供给用户选择的,一定是绝大多数目标用户懂的、知道的。如果不是这样的话那就需要制作详细的用户手册。而往往用户不会有这样的时间成本预算在里边。所以我们只提供给用户懂得选择,其他得都用程序帮用户做了。内容在最近的项目中,我发现产品经理总是在加很多交互类的需求。作为程序员,我的心里是很疲惫的,与其争辩不如花点时间真正的来学习一下,交互设计。这篇文章是在还没有阅读,相关数据的一些想法。我想把他当做一个猜想放在这里,等我下个月的阅读计划出来以后,我再去一一对比我的这些猜想。首先我要说现在最火

2020-06-13 14:59:46 166

原创 Qml Gridview移动显示标记

Qml Gridview移动显示标记需求在原有的gridview的已经显示了model中的图片数据,现在需要在到不同的item上根据不同的标签状态和收藏状态显示现在的结果示例图:鼠标移动到gridview上,当便签为空的时候,左边的图就是正常状态,并且移开的时候消失,如果标签不为空的时候,左边的图片高亮,并且移开鼠标不消失。鼠标移动到gridview上,当图片没有被收藏的时候,右边的桃心是空心的,鼠标移开的时候消失,当图片被收藏的时候,图片如上显示红心,并且鼠标移开不消失。其中有个需求在截图中

2020-06-12 23:37:23 596

原创 如果我要做一款图片处理软件

如果我要做一款图片处理软件题记自私的一种表现,就是不愿过多的分享想法,又总觉得自己的想法是多么完美。背景虽然刚开始在做一款图片处理的软件,其实这个时候往往会有很多的想法。但是由于经验不足,这些想法总是会有很多的缺陷,所以通过整理,发布的方式,与人交流的方式,来逐步优化自己的方案,也是一种学习的过程。希望那些有相关经验的同学,在看到这个文章后,能给我提一些建议,再次表示十分的感谢目标用户由于我属于起步的做同类性质的软件,在国内国外都有十分成熟的图片处理软件了。但是我一直觉得他们的处理都过于复杂,如

2020-06-09 21:42:54 228

原创 人月神话(7)巴比伦塔为什么失败

人月神话(7)巴比伦塔为什么失败文章目录人月神话(7)巴比伦塔为什么失败思维导图巴比伦塔的管理教训具备哪些先决条件失败的主要原因大型编程项目中的交流如何进行相互之间的交流沟通项目工作手册是什么?为什么?如何制作手册处理机制如何入手?组织架构减少交流的方法树形组织架构的产生子树的基本要素两个角色产品负责人技术主管存在的三种关系总结思维导图巴比伦塔的管理教训具备哪些先决条件清晰的目标人力充足材料齐全足够的时间足够的技术失败的主要原因缺乏交流和交流的结果——组织大型编程项目中的交流

2020-06-08 23:05:10 380

原创 Qt 遍历文件夹的三种方式

Qt 遍历文件夹的三种方式github dome今天的心态被搞崩溃了,在多年的编程经验里。普遍的经验认为在遍历文件夹这件事情上,肯定是队列优于递归的。但在Qt 由于有一些库函数,我发现使用递归的速度尽然比队列还快,而且队列的遍历还特别的慢,估计是我写的队列遍历那个地方又问题,请大神指导一下,这是为什么呢?我一个qt初学者真心想把这个问题搞清楚。因为之前在公司电脑测试的时候,发现队列确实别递归快,但是回家用自己的笔记本测试的时候发现,在文件特别多的时候,队列的代码耗时特别长!!递归//递归实现文件的遍

2020-06-07 00:30:50 980

原创 人月神话(6)贯彻执行

人月神话(6)贯彻执行思维导图问题主旨​ 在概念性完整性的情况下,更好的执行,和高质量执行的方法手册作用和功能​ 手册是产品的外部规格说明,它描述和规定了用户所见的每一个细节,同样地,它也是结构师的主要产物如何制作手册额注意事项修改的阶段性很重要,在进度表上应该带日期的版本信息​要避免描述用户看不见的事物规格说明的风格必须清晰,完整和准确。每条说明必须重复所有的基本要素,所有文字都要相互一致​精准比生动更加重要优秀手册具备的要素第一兼容性,描述将要达到的

2020-06-06 19:30:27 310

原创 opencv(7)图像处理1

opencv(7)图像处理14-7边缘检测import numpy as npimport cv2 as cvfrom matplotlib import pyplot as pltimg = cv.imread('D:\\Codelearn\\python\\opencv\\image\\2.jpg', 0)edges = cv.Canny(img, 100, 200) # 主要是Canny函数的使用plt.subplot(121), plt.imshow(img, cmap='gray'

2020-06-06 15:12:11 134 2

原创 Qt 打开带空格路径问题

QDesktopServices::openUrl(QUrl("C:/111", QUrl::TolerantMode)); //打开 QDesktopServices::openUrl(QUrl("C:/111 222", QUrl::TolerantMode)); //打不开,带空格 QDesktopServices::openUrl(QUrl("//XX-PC/share", QUrl::TolerantMode)); //打不开,共享目录.

2020-06-06 14:57:04 1535

原创 Qt JSON常用的方法

QJsonParseError ParseError; //QJsonDocument document = QJsonDocument::fromJson(res.toUtf8(), &ParseError);if (document.isNull() || ParseError.error != QJsonParseError::NoError) { emit sigNoNewVersion(); return;}QJsonObject Object = docum

2020-06-06 14:54:49 237

delphi中ListView拖动图标

listview有很多强大的功能,自学确实有点麻烦!但是通过不断的看实例可以学习的更快!这种简单的例子只能适合初学者

2013-10-23

delphi 高手突破

此文档从基础到深度,都有一定的研究!是学习delphi很好的资料!

2013-10-22

通过url将网页产生缩略图

通过的url,将网页内容产生缩略图。 虽然不难,但是不知道的人,永远找不到方法的! 三分很值得的,可以学到很多的东西! 现在来看这些代码太小儿科了

2013-10-21

取图标dome

初学者可以用,老手就不要下载了。你们会骂人的,可以取48*48,256*256的icon,看懂后可以去任意程序,256以下的Icon。

2013-10-16

usb监控程序

简单的实现usb的监控,作为单元引用可直接使用到程序中。| 是初学delphi的学习不可缺少的资料!

2013-09-29

IE按钮扩展实现截图功能

整个代码生成一个动态链接库,注册到IE中就可以使用了!是学习如何写IE插件,和学习做截图工具的参考资料。物有所值!十分值得。

2013-08-01

delphi多线程程序实例

初学者的学习模板!大家可以学习到多线程工作的方式!主要还是用来自己查看的,现在发现都没得好大作用了。但又要求我要写50个字,很是尴尬。

2013-01-28

delphi文件搜索源代码

是开始学习delphi人的一个编程模板!

2013-01-28

空空如也

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

TA关注的人

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