软件开发
软件开发
设计小工人
成长之路,慢慢探索,不放弃,不懈怠,偶尔停下脚步去思考回味,看轻成败,着重过程。
不忘初心,方得始终!
展开
-
Android On Qt开发环境搭建
一、准备软件:1.Qt 5.5.1 for Android (Windows 32-bit, 935 MB) (info) :http://www.qt.io/cn/download-open-source/http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-androi...转载 2019-04-23 14:22:27 · 644 阅读 · 0 评论 -
Qt中添加背景图片
1. QPalette的方法int main(int argc, char *argv[]){ QApplication app(argc,argv); QFrame *frame = new QFrame; frame->resize(400,700); QImage image1; image1.load("images/frame1.转载 2016-06-10 19:11:59 · 1283 阅读 · 0 评论 -
QString类
QString 类是 Qt 中用于表示字符串的类,实现在 QtCore 共享库中。QString 类在实现上有以下特征。1)字符串采用 Unicode 内部编码,可以表示世界上大多数语言的文字。2)字符串的存储有引用计数,当一个 QString 对象被复制为另一个 QString 对象时,它们实际上指向相同的存储空间,仅仅是增加一个引用计数。 3)采用 “按需复制” 的技术转载 2016-05-24 13:26:12 · 1353 阅读 · 0 评论 -
QWidget类和QApplication类
QWidget类:窗口类,新生成的窗口默认是隐藏的,必须调用它的show方法才能使之成为显式状态。窗口并不是在show方法调用完成后就真正显式在屏幕上,实际上只是发送了一个要求显式的事件,必须等主事件循环处理这个事件以后才真正显式出来。转载 2016-05-24 11:07:45 · 2286 阅读 · 0 评论 -
Qt工程文件
有时候需要手动修改工程文件,因此有必要理解其中一些常用变量的含义:变量名 含义TEMPLATE 模板,app代表应用程序,lib代表共享库CONFIG 配置选项QT转载 2016-05-24 11:05:04 · 440 阅读 · 0 评论 -
QChar类
QChar QChar 类是 Qt 中用于表示一个字符的类,实现在 QtCore 共享库中。QChar 类内部用2个字节的Unicode编码来表示一个字符。 构造 QChar 类提供了多个不同原型的构造函数以方便使用,如: [plain] view plain cop转载 2016-05-23 09:44:02 · 1573 阅读 · 0 评论 -
Qt事件驱动处理机制
QT 源码之 Qt 事件机制原理是本文要介绍的内容,在用Qt写Gui程序的时候,在main函数里面最后依据都是app.exec();很多书上对这句的解释是,使 Qt 程序进入消息循环。下面我们就到exec()函数内部,来看一下他的实现原理。Let's go!首先来到QTDIR\src\corelib\kernel\qcoreapplication.cppint QCoreApplica转载 2016-04-26 14:31:37 · 1786 阅读 · 2 评论 -
给Qt程序加一个window桌面图标
Qt的跨平台功能很强大,但是它还没有一个可以跨平台的显示桌面图标的方法。于是默认情况下,用Qt Creator生成的程序都是Windows默认的命令行图标。那怎么修改呢?在Qt Designer里面修改是没用的,那里显示的是程序运行时左上角的小图标。 在Windows下的正确方法是: 1.首先要有一个windows程序图标文件,比如logo.ico。这个文件一般32x32像素就转载 2016-04-15 16:22:30 · 738 阅读 · 0 评论 -
Qt之XML学习1
我们知道对XML的操作有两种方法,即DOM方式和SAX方式。二者主要区别是:DOM实现方式操作非常简单,但不适合处理过大文件;而SAX实现方式是能处理很大的XML文件,但是需要开发者写一些复杂的代码。Qt提供了对应于这两种用于读取、操作和编写XML的实现类,分别是QDomDocument类和QXmlStreamReader类,由于在项目中涉及的文件不大,因此我们选用QDomDocument类来处理转载 2016-03-21 21:58:32 · 374 阅读 · 0 评论 -
Qt打包发布方法
下载安装qt软件,添加到系统环境变量,比如我的安装路径是:C:\Qt\Qt5.5.0\5.5\mingw492_32\bin 就把这个路径添加进去,然后就能在控制台中使用qt的命令了。1.Qt Widgets Application 可执行程序发布方法用QtCreator新建里的一个Qt Widgets Application项目,,完成后以Release 方式发布原创 2016-03-15 14:43:29 · 1250 阅读 · 0 评论 -
Qt封装DLL
由于原文章没有转载链接,只好直接粘贴过来,附上原文地址:http://www.cnblogs.com/feiyangqingyun/p/3720777.html既然QT也是C++,而且有个大名鼎鼎的WPS都是QT和MFC混合编程的,所以肯定有方法的,百度谷歌,找到一个qtwinmigrate的东西,在这里万分感谢qtwinmigrate的作者!第一步:打开qt转载 2016-02-25 10:28:10 · 4073 阅读 · 1 评论 -
认识EC11旋转编码器&编写驱动程序
前言抛开工作,以电子爱好者的身份,单片机玩多了都会想着在单片机的外围设备玩出一些花样来。这其中首先想到的就是“升级”输入输出设备。这里先说一说我们常给单片机使用的输入设备。独立按键 矩阵键盘 ADC按键 ADC摇杆 电位器 五向按键 拨轮开关 旋转编码器以上这些输入设备,不是按键就是电位器。厌倦了在矩阵键盘里一个个的找按键,也厌倦了使用ADC扫描的方式来读取输入值。就只...原创 2018-11-28 15:35:38 · 23653 阅读 · 22 评论 -
LED的流水灯实验
上一节说了单片机点亮一个LED的方法,包括LED的原理,电路的几种结构,单片机对IO的操作,下面是单片机点亮流水灯的几种方法!三种方式分别是:1. 通过位操作实现2.通过位移实现3.通过循环位移实现所有的程序都是配合硬件使用的,下面是大家购买的电路板上面的硬件LED结构。第一种是比较简单直观原创 2017-09-05 17:30:43 · 3496 阅读 · 3 评论 -
点亮第一个发光二极管
1、发光二极管发光原理发光二极管简称LED,其内部结构为一个PN结,具有单向导电性。 当在LED发光二极管PN结上加正向电压时, P区的空穴注入到N区,N区的电子注入到P区,这空穴与电子相复合时产生的能量大部分以光的形式出现,因此而发光,并且根据释放能量的不同能发出不同波长的光,在电路或仪器中可用作指示灯,也可以组成文字或显示器件。发光二极管按封装(这里可以暂理解为外形)可分为直插原创 2017-08-16 10:39:07 · 2258 阅读 · 0 评论 -
Mutlisim和Proteus仿真
作为一个硬件电路设计的Newer,工作中都不可避免的要接触到两个软件,Proteus和Mutislim,同样都有大家需要的仿真功能,都能得到必要的仿真结果,这样就可以避免设计过程中的一些不必要问题,有可能就会节省开发成本;个人爱好吧,是整体的系统集成的时候,会经常用到这里两个软件的,具体都怎么用,怎么选择,这里说一些自己的浅见;一般一个完整的系统,都会由许许多多的模原创 2017-05-16 14:43:49 · 2159 阅读 · 0 评论 -
将数组传递给函数
一维数组传递数组给函数的3个原则1.函数调用时只需传递数组名。2.在函数定义中,形参的类型必须与数组的相同,数组的大小不必指定。3.函数原型必须定义为参数是一个数组。#include #include void sort(int x[],int m);int main(){ int转载 2017-12-29 15:33:16 · 5813 阅读 · 0 评论 -
双向链表的操作
/*双向链表的操作*/#include #include #include typedef struct DoubleLinkList{ int data; struct DoubleLinkList *pre; struct DoubleLinkList *next;}DlinkList_Node;/*建立双链表*/DlinkList_Node* cr转载 2016-08-30 14:32:44 · 501 阅读 · 0 评论 -
单链表操作
/*************单链表的操作函数总结*****************/#include #include #include #include using namespace std;struct STU{ char name[20]; char stuno[10]; int age; int score;}stu[50];type原创 2016-08-30 11:00:15 · 496 阅读 · 0 评论 -
CSerialPort类解析
CSerialPort类的功能及成员函数介绍CSerialPort类是免费提供的串口累,Codeguru是一个非常不错的源代码网站CSerialPort类支持线连接(非MODEM)的串口编程操作。CSerialPort类是基于多线程的,其工作流程如下:首先设置好串口参数,再开启串口检测工作线程,串口检测工作线程检测到串口接收到的数据、流控制事件或其他串口事件后,就以消息方式转载 2016-05-11 16:01:48 · 1447 阅读 · 0 评论 -
ctype.h库函数
isalpha函数名称: isalpha函数原型: int isalpha(char ch);函数功能: 检查ch是否是字母.函数返回: 是字母返回非0(在vs2015中为2) ,否则返回 0.iscntrl函数名称: iscntrl函数原型: int iscntrl(int ch);函数功能: 检查ch是否控制字原创 2016-05-05 10:57:05 · 518 阅读 · 0 评论 -
跨平台线程库——pThread
基本接口介绍:1. pthread_create #include int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); 创建一个由调用线程控制的新的线程并发运行。新的线程使用start_原创 2016-05-03 17:05:08 · 2027 阅读 · 0 评论 -
指针数组和数组指针
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2016-04-27 06:36:35 · 408 阅读 · 0 评论 -
c++ hook 钩子的使用介绍
一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口转载 2016-04-26 11:54:00 · 3881 阅读 · 0 评论 -
多态的作用——通用性
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。 赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。 举个例子:从一个基类中派生,响应一个虚命令,产生不同的结果。 比如从某个基类继承出多个对象,其基类有一个虚方法Td转载 2016-04-22 17:23:57 · 1358 阅读 · 0 评论 -
C++的精髓——虚函数
纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};void Move();private:};class CChild : public CMan{public:vir转载 2016-04-22 17:22:11 · 755 阅读 · 0 评论 -
C++虚表
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过转载 2016-04-22 17:19:32 · 446 阅读 · 0 评论 -
烦人的字符转化
1.string 转 CString CString.format(”%s”, string.c_str());2.char 转 CString CString.format(”%s”, char*);3.char to string string s(char *);4.string 转 char * char *p = string.c_原创 2016-04-05 21:13:51 · 436 阅读 · 0 评论 -
C++文件操作
这篇文章是我借鉴来的,比我自己总结的要更加的详细贴切。由于没法转载,就COPY过来了。附上原帖地址:点击打开链接ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(原创 2015-12-01 13:30:30 · 440 阅读 · 0 评论 -
ASCII学习对照表
ASCII(American Standard Code for Information Interchange)定义从 0 到 127 的共128个数字所代表的英文字母或一样的结果与意义。由于使用7个位(bit)就可以表示从0到127的数字,大部分的电脑都使用8个位来存取字元集(character set),所以从128到255之间的数字可以用来代表另一组128个符号,称为extended AS原创 2015-11-30 20:47:56 · 828 阅读 · 0 评论 -
C++输入字符串的问题
关于C++中输入字符串的问题,大概简单的有这样几种吧,比如对应的要输出this is a string/ #include #include "string"int main(){ char s[20]; for(int i=0;i<17;i++) { s[i] = getchar(); } std::cout<<s;原创 2015-11-30 01:02:33 · 807 阅读 · 1 评论 -
C++内存分配原则方法
学了这么久的C++了,对与这一块还是很模糊,自己也总结了不少,今天看了一个不错的总结,由于没有分享,就转载过来了。附上原文地址:点击打开链接栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收转载 2015-11-26 21:08:50 · 645 阅读 · 0 评论 -
const 和static const 的区别
最近在使用MFC的时候遇到一些困惑,就是我定义的一些常量他的使用域到底是多大,最后为了这个问题专门做个个测试,查找了一些资料,算是对这个问题做了个还算详细的介绍吧!const就是只读的意思,只在声明中使用;static一般有2个作用:规定作用域和存储方式对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,原创 2015-11-23 19:31:24 · 518 阅读 · 0 评论 -
关于cin输入的问题
原理: 程序的输入都会提前建立一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取得数据。正因为cin函数是直接从缓冲区去数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入(容易忽略的点) #include using namespace std;int main()转载 2015-11-18 19:49:43 · 1206 阅读 · 0 评论 -
#define宏定义和const
#define是在预编译阶段就定义的常量,不占用内存空间;const可以在程序的任何时候定义,是一个全局的常量,放在内存的static部分。 #define宏定义没有指定的类型,而const在定义时就指定了常量的类型。 const int *p; //p可变,p指向的对象不可变int const*p; //p可变,p指向的对象不可变原创 2015-11-16 23:28:19 · 710 阅读 · 0 评论 -
c++学习之文件操作
例子:C的复制文件 Copy.c#include using namespacestd; int main(int argc,char* argv[]){ FILE *in,*out; int ch; if(argc!= 3) { fprintf(std原创 2015-11-12 22:49:20 · 809 阅读 · 0 评论 -
c++学习之OO思想
针对不同的对象去做实例化,就是所谓的OO思想。在面对对象的思想中,任何事物都可以被看作一个对象。一个在复杂的模型结构都是由千千万万个对象组成的,这是根本思想。面向对象是当前软件开发方法的主流,其概念和应用早已超越了程序设计和软件开发本身而扩展到更加宽广的范围。OO思想的特点1. 封装封装意味着把对象的属性和方法结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。原创 2015-11-12 22:46:45 · 1568 阅读 · 0 评论 -
C++连接mysql数据库
下面以最经典的VC++为例,来连接。打开vc++6.0,工具->选项->目录(选项卡),在其Include files添加MySQL的include路径。如我的MySQL的include文件夹的路径为:C:\Program Files\MySQL\MySQL Server 5.0\include。切换下拉框,选择Library files,添加MySQL的lib路径。如我的为:C:\Progr原创 2015-12-02 13:48:29 · 1479 阅读 · 0 评论 -
mysql中数据类型
一下内容为参考了好多网上的blog和百度文库终结出来的。这里先总结数据类型。MySQL中的数据类型大的方面来分,可以分为:日期和时间、数值,以及字符串。下面就分开来进行总结。 日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:2014-09-18time3字节,时间,格式:08:42:30dateti原创 2015-11-30 22:55:51 · 432 阅读 · 0 评论 -
VS利用ADO连接数据库的操作
(1)初始化COM库,引入ADO库定义文件(2)用Connection对象连接数据库(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。(4)使用完毕后关闭连接释放对象。具体的操作如下:【1】COM库的初始化我们可以使用AfxOleInit()来初始化COM库,这项工作通常在C原创 2015-11-12 14:01:41 · 998 阅读 · 0 评论 -
vc++程序开机自启动和取消启动
//开机启动int CMainWnd::CreateRun(){ //添加以下代码 HKEY hKey; char pFileName[MAX_PATH] = {0}; //得到程序自身的全路径 DWORD dwRet = GetModuleFileNameW(NULL, (LPWCH)pFileName, MAX_PATH); /转载 2016-03-23 11:01:53 · 1014 阅读 · 0 评论