自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纯屌丝程序猿

生命不止,折腾不止!

  • 博客(112)
  • 资源 (5)
  • 收藏
  • 关注

原创 PyCharm退回上一步,前进下一步

PyCharm版本:PyCharm 2020.1.3菜单:View->Appearance->Toolbar"<--"退回上一步 (快捷键:Ctrl+Alt+左箭头),"-->"前进下一步(快捷键:Ctrl+Alt+右箭头)。

2020-11-26 10:20:16 26678 3

原创 github 远程仓库(原作者的仓库)和你的fork仓库保持一致

步骤1、切到你要的分支:git checkout branch_name2、拉取upsteam(原作者仓库的别名)仓库的代码:git fetch upstream3、合并upsteam(原作者仓库的别名)仓库的代码到你的本地对应的分支:git merge upstream/branch_name4、推送你的本地代码到你自己的github对应的分支:git ...

2019-12-19 18:58:06 738

原创 git: Your branch is ahead by X commits 的解决方案

产生原因因为你在pull或者fetch原作者代码的时候会产生新的commit记录,这条commit其实是让你的库和原作者的库代码一致,但是却会生成一条和你修改代码后提交的commit一样的记录,导致你的仓库的基(base)和原作者的仓库的基(base)产生偏移,所以git会提示Your branch is ahead by X commits解决方案当你的github ...

2019-12-19 18:45:17 6342

原创 TinyXML-2 读 XML 文件

要读的XML文件示例代码#include <iostream>#include "tinyxml2.h"using namespace std;using namespace tinyxml2;/**************************************<?xml version="1.0" encoding="UTF-8"?>...

2019-10-09 22:11:48 678 1

原创 TinyXML-2 写 XML 文件

要写入xml文件的内容<?xml version="1.0" encoding="UTF-8"?><!--this is a comment--><html> <head>this is a heading!</head> <body> <p>this is a paragraph!&lt...

2019-10-09 21:41:17 807

原创 Qt 图形视图框架(Qt MVC)

什么是MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构...

2019-09-13 22:31:39 1911

原创 表白神器制作

1、新建一个文本本件,输入你想表白的话:代码如下:msgbox("xxx我喜欢你~")msgbox("没有你我活不了~")msgbox("嫁给我好不好~")msgbox("爱你么么哒~")2、保存,更改文件后缀名为vbs(新建文本文档.vbs):3、选择你要伪装成得软件,比如你想伪装成微信。右击微信--->属性--->复制目标中的字符:4、右击...

2019-09-04 23:59:37 5229 5

原创 C++11智能指针之shared_ptr

引入智能指针的背景(目的)智能指针的引入主要为了解决程序员在使用new之后该释放(delete)内存的地方没释放(delete),要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++11 模板库的 <memory> 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。shared_ptr只要将 new...

2019-08-21 00:02:50 625

原创 基于vue.js的购物车demo

需求:购物车展示一个已加入购物车的商品列表,包含商品名称、商品单价、购买数量、操作和购买总价。其中购买数量可以增加或减少,每类商品可以从购物车中移除。在浏览器上的运行结果:源代码共三个文件:index.html、index.js、style.css:index.html主要包含页面信息:<!DOCTYPE html><html><head&g...

2019-03-31 17:11:40 1365

原创 HTML之title标签

&lt;title&gt;&lt;/title&gt;*title标签由开始标签和结束标签组成,代表网页标题,会显示在浏览器的标题栏;*title是head标签中唯一要求包含的东西(没包含默认以html文件名作为标题) 示例代码&lt;!DOCTYPE html&gt; &lt;html&gt;&lt;head&gt;&lt;/head&gt; &lt;meta ch...

2018-09-16 18:59:14 2995

原创 html文档结构

一个简单的html文档结构示例&lt;!DOCTYPE html&gt; &lt;html&gt;&lt;head&gt; &lt;!-- add other tag or content here! --&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;html标题&lt;/title&gt;&lt;/he

2018-09-16 16:58:16 254

原创 HTML 标签(tag)

*html标签是由尖括号包围的关键词,例如&lt;html&gt;、&lt;head&gt;、&lt;title&gt;等等;*html标签通常是成对出现的,例如&lt;b&gt;和&lt;/b&gt;等;*标签中的第一个标签是开始标签(也叫头标签),第二个标签是结束标签(也叫尾标签);*开始标签和结束标签也被称为开放标签和闭合标签;*“HTML标签”和“HTML元素”通常是同样的...

2018-09-16 10:26:09 13455

原创 HTML

概念日常人们常说的网页就是通过HTML标记语言编写的一个个html文件。 HTML基本常识*HTML是用来描述网页的一种语言;*HTML指的是一种标记语言:是hyper text markup language 的缩写;*HTML是一种标记语言,并不是一种编程语言;*HTML是一套标记标签(markup tag)构成的文档(后缀为.html或.htm);*HTML使...

2018-09-16 09:40:22 216

原创 Git 冲突:commit your changes or stash them before you can merge 的解决办法

问题背景当使用git pull 来更新本地代码的时候,有时候会出现冲突,,提示:Please,commit  your changes or stash them before you can merge,该提示上面会显示出冲突的文件。 问题分析出现该问题的原因是你正在本地修改文件a.cpp,你的团队中另外一个人也修改了该文件并且已经提交到版本库中了,然后你们可能修改了代码的同一个...

2018-07-23 08:14:43 5274

原创 安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效

前言最近写TypeScript需要安装、配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中)。打开系统终端敲入命令 node  -v 和 npm -v 也都有显示对应的软件包版本号,但是在VScode(Visual Studio Code)终端下敲入同样的命令却显示为无效命令。安装包自动配置的环境变量:使用系统终端查看的...

2018-06-01 00:54:49 37453 12

原创 TypeScript基本数据类型

前言TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发。2012年十月份,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript 0.9,向未...

2018-05-14 00:13:57 1987

原创 C++语言实现顺序表数据结构

概念顺序表是最基本的数据结构之一,它属于线性表的一种存储表现形式,在计算机内部表示为一块连续的内存空间。C++实现顺序表代码#include &lt;iostream&gt;using namespace std;template &lt;typename T&gt; class SeqList{public: SeqList(int size = defaultSize)...

2018-05-10 23:38:37 1849

原创 漫谈设计模式之策略模式(Strategy Pattern)

概念Strategy模式也叫策略模式是行为型模式之一。它对一系列算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换。策略模式结构图Strategy:  策略算法抽象;ConcreteStrategy: 各种策略(算法)的具体实现;Context: 策略的外部封装类...

2018-04-25 22:12:22 267

原创 漫谈设计模式之责任链模式(Chain Of Responsibility)

概念Chain Of Responsibility(CoR)模式也叫责任链模式,是行为模式之一。该模式构造一系列分别担当不同的职责的类对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称为责任链模式(或者职责链模式)。责任链模式类结构图Handler: 处理类的抽象父类;ConcreteHandler:具体的处理类;实例代码代码完成一个造车流程:造车头,造车身,造车尾。非责任链模式...

2018-04-24 20:52:30 527

原创 漫谈设计模式之命令模式(Command)

概念Command模式也叫命令模式,是行为设计模式的一种,Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。 在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例--&gt;设置调用参数--&gt;抵用目标对象的方法。但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类。整个调用过...

2018-04-23 00:53:56 359

原创 漫谈设计模式之模板模式(Template)

概念模板模式(Template Method)也叫模板方法模式,属于行为型设计模式之一。它把具有特定步骤算法中的某些必要的处理委让给抽象方法。通过子类继承对抽象方法的不同实现改变整个算法的行为。模板方法模式结构图从结构图中我们可以看出父类(抽象类)除了提供给子类一套接口外还多了一个TemplateMethod()方法,这个方法也叫模板方法用于管理其他接口的调用顺序。也就是说,在抽象类中统一操作步骤...

2018-04-22 15:52:55 297

原创 Linux 下 安装 SQLite

下载安装包去sqlite官网(http://www.sqlite.org/index.html):点击Download按钮(跳转到http://www.sqlite.org/download.html):点击下载安装包,下载完成后将安装包拷贝到Linux机器上(楼主是在Windows上下载的,如果你就是在Linux上下载的则忽略这步)。安装步骤1、解压文件 tar -zxvf sqlite-aut...

2018-03-09 15:07:33 3629

原创 QT5 error: cannot find -lGL

遇到的问题今天在Debian上安装Qt5.7.1时遇到运行Qt自带测试程序提示error: cannot find -lGL。错误信息提示找不到OpenGL相关的库,楼主之前在Ubuntu上装过没有遇到类似的问题。最后总结了下原因主要是因为Qt5.0默认会将OpenGL加入工程,但是有的机器上没有安装OpenGL。解决方案就是在当前机器上安装OpenGL。安装步骤1、安装基本的编译环境$ sudo...

2018-03-07 18:15:58 871

原创 基于QML的图片浏览器

演示截图工程演示中会看到的两个窗体分别是一个文件选择对话框和一个图片浏览器窗体。1、文件选择对话框界面如下:因为博主是在window下运行的代码,所以Qt Quick默认就适用了Windows系统的对话框(风格)。不同的操作系统上会有不同的原生文件选择对话框,如果没有的话Qt Quick会使用默认的QML文件对话框。2、图片浏览器也是我们使用QML代码实现的图片浏览器窗体如下:工程代码import...

2018-03-04 15:41:41 1885

原创 Qt 之 QSplitter Class

详细描述QSplitter 类实现了一个分离器部件。先看一下控件使用分离器(QSplitter)后的演示效果:左边是一个QTreeWidget,右边是一个QWidget上边放置一个QLabel。没有使用QSplitter之前两个控件的大小是不可以通过拖拽它们之间的边界来调整的。一个分离器允许用户通过拖拽控件之间的边界来控制它里面子控件的大小。任何数量的控件都可以由一个分离器控制。典型的使用QSpl...

2018-03-02 12:39:48 1996

原创 SQLite datatime()函数为何获取不到系统本地时间?

前言最近项目中频繁用到SQLite的时间日期这些函数,发现一个很奇怪的问题:就是当使用datetime()函数获取日期时间时,得到的日期时间和你系统的本地时间是不一致的。有图有真相系统时间是2018-02-11 04:07:xx(pm) ,但是通过datetime() 获得的日期时间却是2018-02-11 08:07:03。如何获得系统的日期时间为什么会出现这种情况?难道是SQLite的bug?...

2018-02-11 11:44:21 2494

原创 QML属性详解

简介QML的元素使用它们的元素类型名来进行声明,使用它们的属性或者创建自定义属性来定义。一个属性对应一个值(代码格式为:  属性名:属性值),例如:width:100;text:'Hello QtQuick';color: "#f0f0f0";一个属性有一个类型定义并且需要一个初始值。代码实例以Text QML Type为例来学习一下QML的属性知识点: Te

2018-01-20 14:03:54 2490

原创 QML 语法(Syntax)

简介QML(Qt Markup  Language:Qt 标记语言)是一种描述用户界面的声明式语言。它将用户界面分解成一些更小的元素,这些元素能够结合成一个组件(Component)。QML语言描述了用户界面元素的形状和行为。用户界面能够使用JavaScript来提供修饰,或者增加更加复杂的逻辑。从这个角度来看它遵循HTML-JavaScript模式,但QML是被设计用来描述用户界面的,而不是

2018-01-19 19:23:13 1028

转载 SQL删除重复数据只保留一条

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、

2018-01-16 14:38:54 1192 1

原创 QHeaderView sectionResized()信号和geometriesChanged()信号的异同

简述背景最近博主在写一个项目的时候需要在QHeaderView的size改变的时候自己获取QTableView表头各个section的width()来实现,自己自定义的控件。实现思路是在表头的size发生改变的时候获取一下表头各个section的width。一开始楼主使用的是void sectionResized(int logicalIndex, int oldSize, int newSi

2018-01-03 16:59:11 1272

原创 QTreeWidget简单使用之一

详细描述QTreeWidget类提供了使用预定义树模型的树视图。QTreeWidget类是一个方便的类,它提供了一个标准树小部件,它具有一个经典的基于项目的接口,类似于Qt 3中的QListView类所使用的接口。这个类基于Qt的模型/视图架构,并使用默认模型来保存项目,每个项目都是一个QTreeWidgetItem。不需要模型/视图框架灵活性的开发人员可以很容易地

2017-12-27 17:05:17 3525 1

转载 2018 最具就业前景的 7 大编程语言,Java、Python 和 JavaScript 前三无悬念?

2018 年即将到来,Coding Dojo(编码道场)近期发布了 2018 最具就业前景的 7 大编程语言。该公司分析了来自 Indeed 的 25 门编程语言、栈和框架的数据,以找出雇主最需求的七个数据。数据基于每种语言的工作发布数量。需先说明的是,国内和国外的情况有所差异,以下数据和分析仅供参考。结果发现,位居前三名的分别为 Java、Python 和 JavaS

2017-12-19 19:08:20 651

原创 Qt Linux 连MySQL出现libqsqlmysql.so路径问题

在Linux下使用Qt连接MySQL的时候运行如下代码:QSqlDatabase::addDatabase("QMYSQL");经常遇到以下错误:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers: QSQLITE QPSQL QPSQL7主要是因为MySQL驱动的问题,在Q

2017-12-19 17:57:23 1954

原创 Qt Creator 自动补齐函数参数问题

遇到的问题使用Qt Creator集成开发环境进行项目编码时,经常需要重写父类的虚函数去实现自己想要的功能,但是当声明这些函数时,经常遇到函数名可以自动补齐,但是函数的参数却不能自动补齐的情况,可能是有些Qt Creator的版本支持只要敲函数名的前几个字符就会把函数名连同参数一并给补全,但是博主使用的IDE版本中大都都只是补全函数名,函数参数不会自动补全。如何解决一开始博主以

2017-12-06 20:52:06 7265 10

原创 SQL 实现日期(时间)相加减

前言时间(日期)的相加减是编程中经常会遇到的场景,我们使用的很多第三方库都会提供相应的API来供程序员实现时间(日期)的相加减。楼主一直使用的Qt库的QDate类就有提供addDays()系列API供程序员调用。在结构化查询语言SQL中同样可以实现时间(日期)的相加减,下面就来看几个例子。SQL实现日期(时间)加减实例SQL实现时间相加减:select date(date(

2017-12-01 19:45:32 90632 2

转载 Linux系统下 解决Qt5无法连接MySQL数据库的方法

Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get install qt-sdk命令装的低版本的Qt5(如5.2.x)缺少MySQL驱动问题,如果你的Qt5版本为5.7.X,那么就不能用这种方法解决,请参考下面的方法。 传统解决方法:一、解决问题

2017-12-01 18:48:56 2042

原创 SQL 字符串拼接

前言字符串拼接是编程中经常会遇到的场景。在C语言中我们使用 char *strcat(char *dest, const char *src) 将src字符串拼接到dest字符串后面;C++更是通过操作符重载实现了可以直接对两个字符串进行相加操作(string str = "纯屌丝" + "程序员",则str="纯屌丝程序员");在结构化查询语言中则是通过‘||’符号实现字符串的拼接的。

2017-11-29 17:21:57 1704

转载 Linux中samba服务器的搭建

使用的vmware12虚拟机安装的centos6.8和物理机上的windows10,实现在windows10 上访问CentOs上的samba服务。一、先查看系统中是否安装有samba服务相关的软件包。  查看到我的linux中没有安装samba相关的软件包,接下来进行安装几个相关的软件包:samba-3.6.9-151.el6.x86_64

2017-11-28 14:54:29 485

原创 QTableView根据内容自动调整大小(resizeColumnToContents解决不了的)

前言最近使用QTableView比较频繁,出现了一些比较奇葩的问题,其中之一就是QTableView在显示来自模型的数据时,经常会显示...省略了内容的后半部分。如下图:查看帮助文档可以找到resizexxxxToContents()系列接口:根据内容自动调整某列的列宽void QTableView::resizeColumnToContents ( int c

2017-11-23 19:12:30 30614 14

原创 Qt 数据库模型(QSqlQueryModel,QSqlTableModel)获取模型中的所有数据

数据模型默认不是显示所有数据最近使用QTableView结合QSqlQueryModel以及QSqlTableModel在写很多报表,中间产生了一系列出乎意料的现象。其中之一就是QSqlQueryModel,QSqlTableModel这两个数据库模型默认加载数据的时候不是加载所有的数据,而是只加载256条数据(前提是数据源有大于256的数据,如果没有的则有多少条就加载多少条数据)。下图就

2017-11-23 17:45:37 13139 2

QTreeWidget简单使用

代码示例演示了QTreeWidget的简单使用(最顶层的项用addTopLevelItem()函数来加入,每个项的子项用addChild()函数来加入),结合使用这两个API构建属于自己的树控件。使用QTreeWidgetItem的setIcon()函数可以给每个项设置图标,界面更美观。。。

2017-12-28

Qt多级菜单

结合使用QMenu和QAction提供的API实现了一个基于Qt的多级菜单demo,支持右键弹出菜单,稍加修改也同样适用于下拉菜单、按钮菜单等场合。

2017-11-22

QCheckBox使用示例

这个小demo主要演示了如何使用Qt的QCheckBox和QButtonGroup,主要用的技术点为QCheckBox的三态属性(tristate)、QButtonGroup的排他属性(exclusive)以及Qt布局。

2017-09-27

QPushButton使用例子

QPushButton使用例子主要是基于Qt的信号槽机制实现了Qt命令按钮常用的相关功能。主要用到的技术是Qt的信号槽机制及Qt框架提供的相关API。该demo主要实现了响应按钮的点击信号和实现一个按钮点击弹出下拉菜单的功能,下拉菜单是模仿QQ的系统托盘右键菜单。

2017-09-26

基于Qt实现的163音乐登录界面(QWidget+qss)

基于Qt实现的163音乐登录界面(QWidget+qss)

2017-03-28

空空如也

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

TA关注的人

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