搜档网
当前位置:搜档网 › Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程
Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程

QT 2009-11-20 17:09:49 阅读69 评论0 字号:大中小

1.用QT Designer开发非GUI的C/C++软件

1)建立工程:双击上图中的C++ Project;

2)新建源程序并添加到工程中:新建hello.cpp后会自动加入到工程,

hello.cpp如下:

#include

using namespace std;

int main()

{

cout<<"Hello! this program is created by QT Designer !"<

cout<<"You can build a project by QT,and it will generate a makefile by run

$qmake "<

cout<<"Then you can run $make to compile it ."<

cout<<"By QT Designer,you can develop software as easy as on

Windows!"<

}

3)生成makefile:在终端中进入到工程所在的目录,执行

$qmake

则会为所建的工程生成一个makefile文件;

4)编译工程生成可执行程序:执行

$make

如果没有错误就会生成可执行文件;

接下来就可以执行程序,程序的结果将在终端中输出。

2.用QT Designer开发GUI的C/C++软件

1)建立工程:方法同上;

2)制作程序界面:

●File---〉New选择Dialog,则会建立一个空的对话框

根据个人喜好在右边的Property Editor中修改对话框的名字以及相关属性;其中caption属性为窗体标题栏上的显示,name为所创建的对话框类的对象的名字;(本例中将他们都改为了mainForm,)

●添加其他控件:

一个TextLabel:拖入后双击输入Date;

一个LineEdit:拖入后双击输入2006.12.10,并将其name改为dateLineEdit 添加两个按钮,分别将其name改为exitPushbutton, updatePushbutton

●选择Tools菜单下的connect signal/slots,在Exit按钮上点击鼠标不

放松,将其拖到对话框的任意位置后释放,此时会弹出signal 和slots

的设置对话框

在signal栏目类选择clicked()信号,在Slot栏目内选择close ()槽;这样链接起来的意思是在单击(clicked)Exit按钮时就触发了mainForm的close()函数,也就是说关闭程序;

在单击Update按钮的时候我们希望能够更新LineEdit内的显示,使它能显示当天的日期;这样我们就要添加一个自定义的slot

来实现这一功能;

●给mainForm添加updateDateSlot。如下图,选择Object Explore中

的member标签,然后在slots的public下双击就出现了自定义slots

的对话框。Slot其实就是mainForm的一种特殊的成员函数。输入函

数名updateDateSlot()后确定。

则在project中将会添加一个mainForm.ui.h文件,其内容如下:/*************************************************************

***************

** ui.h extension file, included from the uic-generated form implementation.

**

** If you wish to add, delete or rename functions or slots use ** Qt Designer which will update this file, preserving your code. Create an ** init() function in place of a constructor, and a destroy() function in

** place of a destructor.

**************************************************************

***************/

void mainForm::updateDateSlot()

{

}

3)自定义slot函数的实现,由于只是演示流程,所以制作简单处理如下:

/*************************************************************

***************

** ui.h extension file, included from the uic-generated form implementation.

**

** If you wish to add, delete or rename functions or slots use ** Qt Designer which will update this file, preserving your code. Create an ** init() function in place of a constructor, and a destroy() function in

** place of a destructor.

**************************************************************

***************/

void mainForm::updateDateSlot()

{

QString date = "There is no function to calculate the date,now!";

this->dateLineEdit->setText(date);

}

这样在单击Update按钮时dateLineEdit中就会显示There is no function to

calculate the date,now!

this->dateLineEdit->setText(date);语句中的dateLineEdit是我所添加的

LineEdit类的对象名,setText()函数用于设置它的属性。有关各控件类的

属性及成员函数请参考help->content如图,选择:QT Class Reference ,然后单击All Classes链接查找自己所关注的类的属性和成员函数。3.创建main.cpp:方法如下:file-〉new-〉C++ main-file(main.cpp),按照提

示则会自动为所创建的mainForm进行关联并生成相关代码如下:

#include

#include "mainForm.h"

int main( int argc, char ** argv )

{

QApplication a( argc, argv );

mainForm w;

w.show();

a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );

return a.exec();

}

(简单分析如下:

mainForm w;定义了一个我们所实现的界面mainForm类对象w;

w.show();则是显示该界面;

可见QT比VC开发GUI程序要简单,在VC中没有main函数,所以初学者

都不知道程序是从哪儿开始执行。

4.生成makefile:方法同上

5.编译生成可执行文件:方法同上

6.至此一个UI程序编写完毕。

嵌入式学习流程

1、Linux 基础

安装Linux操作系统Linux文件系统Linux常用命令Linux启动过程详解熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux操作系统Linux基本命令实践设置Linux环境变量定制Linux的服务

Shell 编程基础使用vi编辑文件使用Emacs编辑文件使用其他编辑器

2、Shell 编程基础

Shell简介认识后台程序Bash编程熟悉Linux系统下的编辑环境熟悉Linux下的各种Shell 熟练进行shell编程熟悉vi基本操作熟悉Emacs的基本操作比较不同shell的区别编写一个测试服务器是否连通的shell脚本程序编写一个查看进程是否存在的shell脚本程序

编写一个带有循环语句的shell脚本程序

3、Linux 下的C 编程基础

linux C语言环境概述Gcc使用方法Gdb调试技术Autoconf Automake Makefile 代码优化熟悉Linux系统下的开发环境熟悉Gcc编译器熟悉Makefile规则编写Hello,World程序使用make命令编译程序编写带有一个循环的程序调试一个有问题的程序

4、嵌入式系统开发基础

嵌入式系统概述交叉编译配置TFTP服务配置NFS服务下载Bootloader和内核嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程建立嵌入式系统开发环境制作cross_gcc工具链编译并下载U-boot 编译并下载Linux内核编译并下载Linux应用程序

4、嵌入式系统移植

Linux内核代码平台相关代码分析ARM平台介绍平台移植的关键技术移植Linux内核到ARM平台了解移植的概念能够移植Linux内核移植Linux2.6内核到ARM9开发板

5、嵌入式Linux 下串口通信

串行I/O的基本概念嵌入式Linux应用软件开发流程Linux系统的文件和设备与文件相关的系统调用配置超级终端和MiniCOM 能够熟悉进行串口通信熟悉文件I/O 编写串口通信程序编写多串口通信程序

6、嵌入式系统中多进程程序设计

Linux系统进程概述嵌入式系统的进程特点进程操作守护进程相关的系统调用了解Linux系统中进程的概念能够编写多进程程序编写多进程程序编写一个守护进程程序sleep系统调用任务管理、同步与通信Linux任务概述任务调度管道信号共享内存任务管理API 了解Linux系统任务管理机制熟悉进程间通信的几种方式熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输编写一个使用共享内存的程序7、嵌入式系统中多线程程序设计

线程的基础知识多线程编程方法线程应用中的同步问题了解线程的概念能够编写简单的

多线程程序编写一个多线程程序

8、嵌入式Linux 网络编程

网络基础知识嵌入式Linux中TCP/IP网络结构socket 编程常用API函数分析Ping命令的实现基本UDP套接口编程许可证管理PPP协议GPRS 了解嵌入式Linux网络体系结构能够进行嵌入式Linux环境下的socket 编程熟悉UDP协议、PPP协议熟悉GPRS 使用socket 编写代理服务器使用socket 编写路由器编写许可证服务器指出TCP和UDP的优缺点编写一个web服务器编写一个运行在ARM平台的网络播放器9、GUI 程序开发

GUI基础嵌入式系统GUI类型编译QT 进行QT开发熟悉嵌入式系统常用的GUI 能够进行QT编程使用QT编写“Hello,World”程序调试一个加入信号/槽的实例通过重载QWidget 类方法处理事件

10、Linux 字符设备驱动程序

设备驱动程序基础知识Linux系统的模块字符设备驱动分析fs_operation结构加载驱动程序了解设备驱动程序的概念了解Linux字符设备驱动程序结构能够编写字符设备驱动程序编写Skull驱动编写键盘驱动编写I/O驱动分析一个看门狗驱动程序对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理典型的块设备驱动程序分析块设备的读写请求队列了解Linux块设备驱动程序结构能够编写简单的块设备驱动程序比较字符设备与块设备的异同编写MMC卡驱动程序分析一个文件系统对比Linux2.6内核与2.4内核中块设备驱动的不同

11、文件系统

虚拟文件系统文件系统的建立ramfs内存文件系统proc文件系统devfs 文件系统MTD 技术简介MTD块设备初始化MTD块设备的读写操作了解Linux系统的文件系统了解嵌入式Linux的文件系统了解MTD技术能够编写简单的文件系统为ARM9开发板添加MTD支持移植JFFS2文件系统通过proc文件系统修改操作系统参数分析romfs 文件系统源代码创建一个cramfs 文件系统

qt程序在linux console模式下运行

Qt程序在linux Console模式下运行 原文链接:在x86非图形界面下运行QtEmbedded程序 众所周知,一般我们在桌面环境下可以使用qvfb这个工具作为运行QtEmbedded程序的模拟器环境,但我们今天不讲这些大家都知道的事情。 回顾一下QtEmbedded对系统以及硬件的要求,一般来说只有下面少少的几点: 1、 Linux内核+ framebuffer驱动+ socket支持 2、 /tmp可写 3、有合适的键盘和鼠标(触摸屏)驱动并做好与Qt的集成 4、合适的编译器和交叉编译工具链(toolchain) 那么聪明的同学已经想到了,为什么我们不能直接在桌面的linux系统中运行QtE程序呢?似乎QtE的要求我们的桌面系统一样可以满足亚。答案当然是肯定的。 一条一条来说的话, 1内核支持framebuffer和socket这一条大部分发行版默认的内核就可以; 2就不用说了;3在QtE的源码里自带了对普通桌面鼠标和键盘硬件的驱动;4对于X86系统,普通的gcc就可满足,一般linux发行版带的gcc版本也基本可以满足QtE编译的要求。 那么,怎么才能实现我们的想法呢?还是要一步一步按部就班来做。以笔者的Ubuntu 为例,介绍一下设置的具体步骤。 编译QtEmbedded 这一步编译和编译qvfb版本区别不大,只是不再需要configure的时候加-qvfb参 数,只用不加参数的configure足矣。 # tar -zxvf qt-em bedded-linux-opensource-src-4.5.1.tar.gz # cd qt-em bedded-linux-opensource-src-4.5.1 # ./configure -embedded x86 –qvfb // 我的编译情况是: ./confignre –prefix /work/Trolltech/QtEm bedded-4.5.1–no-o penssl # gmake # gmake install qt-em bedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1 设置环境变量: # vi ~/.bashrc 把下面的加上去 export QTEDIR=/usr/local/Trolltech/QtEm bedded-4.5.1 export PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/bin:$PAT H export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/lib:$LD_LIBRA RY_PATH

软件开发流程

快视信息软件开发流程规范: 用户需求:软件项目首先由客户经理(CM,Custom Management)接洽客户的较大的需求。这时的需求叫市场需求(或叫用户需求),客户经理会进行各个项目的安排,即对项目的启动时间和发布时间进行规划和设置。 项目经理(PM,Project Management)对客户经理负责。项目经理的需求是根据客户经理给的,项目经理不和用户(客户)直接接触(通过客户经理接触),负责和用户进行需求洽谈和沟通的是客户经理。一个项目的需求在一般情况下是不准变更的,如果有需求理解方面的不清楚可以进行沟通,但是需求是不变更的。如果用户有新的需求,一般规划在下一个版本中。因为需求变更了,这个目的时间就要进行调整,就不能按计划进行和完成。客户经理提交给项目经理的是需求规格说明书。 一、项目开工会 在项目经理领到客户经理分配给的需求后,做项目计划,具体做项目人员的确定、需求的分解(需求分解到每个人)、代码量的估计,项目各个阶段时间的划分和工作量的计划、质量指标的设定。这时项目经理需要输出的文档是项目需求分解任务书、项目计划PPT、及做好整个项目需要填写的一系列表格。然后组织项目组成员和客户经理CM、QA(质量审计经理)进行项目开工会。这时这个项目就算真正启动,计算工作量时,即计算这个项目总共花了多少个工时,工时是项目经理做计划的时间也算在内,再加上项目开工会和后续各个阶段总共花的总工时数,还有各个阶段开会所花的时间。在项目开工会上,各个成员就明确了这个项目是属于增强型项目,还是其他项目的项目性质,增强型项目的意思是说在原来上一版本的基础上又根据新的需求进行增强型开发。还有要明确项目最后开发出的新增代码量有多少,最后要明确每个人的需求任务,接下来着手进行SRS的写作。 二、SRS阶段:System/Software Requirment Specification 软件需求规格说明 在项目开工会后,项目组就开始按照在项目开工会上项目经理的需求任务分解的任务开始进行SRS的写作。 一般项目经理给你的一个子需求任务,你这时需要分解为更小的需求。一般一个需求的写作是按这样进行的。先简单介绍这个需求,然后把这个需求设计成黑盒的形式,即输入,处理过程、输出。这些都需要写详细,任何一个需求都写成这种形式,输入是什么,处理过程是什么,输出结果是什么。处理过程需要用Visio或者PPT画出处理流程图,流程图要很详细。每一步的各种情况都要表示和考虑到。对异常情况也要考虑和进行处理。还有要说明在原来的基础上怎么改动,具体方法要进行说明。设计的数据库表结构,要给出脚本,SQL语句,表结构需说明每个字段,哪些是主键,你在这个需求处理过程中哪里使用了哪些表,需要进行哪些操作,都需要说明。这里需要设计和编制《数据库设计说明书》文档。该文档中描述该系统中设计出的所有的数据库表结构和各字段类型。还有多个操作对象要画序列图表示出按时序的处理过程。这个SRS文档就相当于我们平时毕业设计或者一个题目的详细设计阶段达到的水平,甚至比它更详细。每个项目组成员都把自己的需求的SRS文档写出来之后放到配置库中,然后每个人对项目组其他成员的(非自己的)SRS文档进行Review(评审),对每个SRS文档在每页发现或者纠正的错误数不能低于一定的数目,而且要保留批注记录,经过Review的(保留批注的)文档要放到配置库的Review文件夹下,这是进行项目质量指标收集的重要依据,是QA 进行调阅和审计的资料。项目经理要对SRS文档、SRS Review文档进行汇总。在汇总后组织项目组全体成员进行SRS阶段会议,对每个人写的SRS进行评审会议(讨论和提意见),对别人给你提的修改意见你要一一进行说明,说明为什么不改,怎么改的,是什么问题,问题严重程度属于什么级别,而且都要填表,也是QA进行审计的内容。开完会后如果每个人完成的都差不多,然后安排半天或者一天的时间进行返工,主要是进行修改文档,按在会上讨论的结果和别人给你的Review 文档结果(评审结果)进行准一修改和完善。然后再进行SRS阶段开会,如果都做的比较到位和具体、符合要求,即关闭SRS阶段。这时SRS阶段的花费的工时数和一些质量活动指标就出来了,比如你这个SRS文档写了几页,每页的错误数是多少,返工修改用了多少时间,然后这些这个比率也会自动计算出来。进而可以判断这个阶段的质量。每个项目组成员在每天工作完毕后都要进行Time Sheet 的填写,必须具体到半个小时,这是统计和分析的需要。填写必须真实。 三、UTP、STP阶段(UTP、STP写作) UTP Unit Test Plan 单元测试计划 STP System Test Plan

软件开发流程图.docx

软件开发流程图 项目前期 需 求 变 化项目启动 需 要系统实变现 更系统调测 开始 获取用户需 编制初步方 编制进度 / 跟踪 需求基本确定 编制详细预 配置内部资 分配开发任 系统实现 控制/调 无需变更 技术调测 PM:获取 EU主要的关键性需求 PM:根据 GM安排编制简略 / 详细的建设方案 PM:基于内部预算对 EU提供费用报价 PM:与 EU确认需求变动及方案、费用调整 PM:完成详细内部预算并提交给GM PM:通过内部项目管理系统配置详细人员、进度安排 PM:移交 EU需求给PG,安排 PG开发任务 PG:根据 EU需求及 PM要求,执行开发任务 PM:通过内部项目管理系统审核PG工作日志, 确认 EU需求变动,执行进度控制,必要时变 更人员安排及内部预算 PG:技术调测及修改;根据TE 测试文档调试修改集成测

部署试

TE:进行集成测试,编制测试文档,提交PM,送达PG 未 通 过通过 通过项目后期 系统验收 结束PG:部署至外部服务器 PM:系统初验 EU:试用 PG : 部署正式上线,编制开发字典,提交PM M 获得试用意见 TE:编制系统操作手册、功能列表,提交PM PM:提交开发字典、操作手册、功能列表给EU,通过内部项目管理系统结项,向 GM汇报 备注: PM (Project Manager):项目经理PG (Programmer):程序员EU (End-User):最终用户TE (Test Engineer):测试工程师GM (General Manager):总经理 硬件开发流程图

产品调研 / 新产品立设计开发执行子项目分支执 首样评审业务部主导 研发部 研发部主导 业务部 研发部主导 研发部主导 业务部 采购部 研发部主导 业务部 工程部 1、资料搜集并拟定产品需求表 ① 预期的用途,特定的功能、性能和安全要求; ② 类似产品的名称,型号或参考实物样板; ③ 细化客户对产品的外观、功能、价格等要求; ④拟定《产品需求表》展开评审会议 , 并形成《技术可行性分 析报告》同时交总经理审批。 2、研发经理组织结构、电子与ID 协调定义,进行3D 图形设计 与修改,形成《产品外观效果图》《产品3D 图》、《产品规 格书》会同业务、总经理展开评审会议,若评审通过,由业 务形成《立案通知书》和《产品研发任务书》交总经 理审批,输出交研发部进行设计开发工作。 注: B 类项目可直接评估形成《产品研发任务书》 3、研发部签收《产品研发任务书》 , 项目负责人根据《产品外 观效果图》、《产品 3D 图》、《产品规格书》、《产品研发 任务书》的要求对设计工作进行策划形成《项目进度表》,包括: ① 设计过程中各阶段时间和工作内容的安排; ② 设计评审、设计验证、设计确认的安排; ③ 设计过程中各项工作的分工及各小组之间的接口及工 作顺序等; 4、项目负责人根据《项目进度表》推进设计,每设计阶段 必须与研发部经理进行设计评审,设计评审完成后研发部 完成硬件打样,首样制作由该项目各负责工程师共同制作, 并完成《样机测试记录表》、《操作说明》、《首样评审表》, 并填写《线路板通知书》、《开模申请表》交研发经理审核。研发 部根据设计评审结论编制 BOM、电路原理图、贴片图的PDF电子 版、结构爆炸图、《样机测试记录表》、《软件测试 记录表》、《样机测试记录表》并存档。 5、结构电子依《首样评审表》内容,对需要做设计变更的 尤其产品外观改动的,需经总经理批准的《设计变更表》, 才能对其模具设计修改,并填写《改模记录表》。首样评审完 成修改通过后,发放至工程部由工程部汇总完成《工程 样机测试汇总表》,3 个工作日后由项目负责人组织电子、 结构、工程、品质、业务进行项目首样评审。

软件开发的完整步骤

软件开发的完整步骤目录 1 问题定义 (4) 1.1 用户调查 (4) 1.2 编写《系统目标与范围说明》 (4) 2 可行性研究 (4) 2.1 确定项目的规模和目标 (4) 2.2 研究正在运行的系统 (4) 2.3 建立新系统的高层逻辑模型 (5) 2.4 重新定义问题 (5) 2.5 导出和评价各种方案 (5) 2.6 推荐可行方案 (5) 2.7 编写《可行性研究报告》 (5) 2.8 提交审查 (5) 3 需求分析 (6) 3.1 制定需求分析计划 (6) 3.2 需求获取 (6) 3.3 分析和综合 (6) 3.4 协商与沟通 (6) 3.5 编写《需求规格说明书》 (6)

3.6 需求验证 (7) 3.7 修改完善开发计划 (7) 3.8 技术审查和管理复审 (7) 4 概要设计 (7) 4.1 制定规范 (7) 4.2 设想供选择的方案 (7) 4.3 推荐最佳方案 (8) 4.4 功能分解 (8) 4.5 软件结构设计 (8) 4.6 数据设计 (8) 4.7 制定测试计划 (8) 4.8 编写《概要设计规格说明书》 (8) 4.9 其他文档编写 (8) 4.10 技术审查和管理复审 (9) 5 详细设计 (9) 5.1 数据结构设计 (9) 5.2 物理设计 (9) 5.3 算法设计 (9) 5.4 界面设计 (9) 5.5 其他设计 (10) 5.6 编写《详细设计规格说明书》 (10) 5.7 技术审查和管理复审 (10)

6 编码 (10) 6.1 选择合适的程序设计语言 (10) 6.2 制定编码规范 (10) 6.3 建立数据库系统 (10) 6.4 程序编码 (11) 7 测试 (11) 7.1 测试用例设计 (11) 7.2 单元测试 (11) 7.3 集成测试 (11) 7.4 系统测试 (11) 7.5编写《测试分析报告》 (12)

项目管理软件开发流程图

一般来说,制造PFD、P&ID,相关专业从事人员都是运用Visio或许AutoCAD、PIDCAD这些软件。软件都各有其长处和缺陷。AutoCAD、PIDCAD这样的纯专业软件,在软件的操作与使用上的 一般都需求花费必定的学习时间,而Visio这样的操作简略便当、又支撑制造多种图表的工艺流程 图制造软件,关于大部分人来说,是相对正确的挑选。但,Visio颇高的价格有时也会让人犹豫是否购买。那有没有类似于Visio这样操作简略、价格又适中的工艺流程图制造软件呢?答案是肯定的。 无需绘图技巧 使用这个功能丰富的流程图软件,您就不必在如何才能创建视觉上很有吸引力的流程图问题很 专业了。您只需输入您的数据,剩下就交给亿图就行了,亿图会自动为您排列所有形状,为获得专 业设计应用专业设计主题等。这个软件让任何层次的用户都能用更短的时间创建更好的流程图。此外,亿图为您节省更多资金,免费为您进行科技支持和升级。 智能地创建视觉流程图

亿图也可以帮助您将文本和图表中的复杂信息翻译成为视觉图表。用这种方式用户就能够识别 瓶颈和低效现象,这些也是过程需要精简的地方。亿图提供智能连接线和高级的文本设计和矢量符号,通过显示浮动对话框告诉你该怎么做。 几分钟获得一个专业的流程图 亿图赋予您能力,简简单单,有效地使用特殊工具,免费的模板和精简的工作流示例就能够创 建出有专业水准的流程图,帮助您快速建立新的流程图、工作流程图、NS图、BPMN图、跨职能 流程图、数据流图和高光流程图等。所有这些图形的绘制仅需短短几分钟即可。 轻松创建交互流程图 插入超链接和插画功能同样包括在内。您可以将图表和基础数据连接起来展示更多地细节信息,这样能够增强效率、影响和交流。为了更加具体一些,你可以通过增加链接到网站、插入附件、添 加注释或者链接到亿图其他视图工具等方式把任何图表转换成信息关口。它们是交互图形,任何人 都可以轻松使用亿图轻松创建。 无缝地分享与合作

Linux-Ubuntu 下 Qt 4.7.1静态编译

Qt的静态编译是本文介绍的内容,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。 一、实验环境 1Ubuntu 10.04 2qt-x11-opensource-4.7.1.tar.gz 二、前期准备 在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。 配置方法:(推荐全程root用户模式) 1、首先调整网络设置使得机器可以上网(具体做法因人而异,这边就忽略不计) 2、需要配置的安装包:输入命令: 3apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev 4libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 三、静态编译Qt 1、下载qt-x11-opensource-4.7.1.tar.gz 2、解压缩qt-x11-opensource-4.7.1.tar.gz 3、配置path 输入命令: 5export PATH="$PATH:/usr/local/Trolltech/Qt-4.7.1/bin" 4、进入qt解压目录,配置configure命令:./configure -static -nomake demos

-nomake examples -nomake tools -no-exceptions 5、分别输入“o”和“y”以后进入编译阶段 6make 7make install 慢慢等吧…… 四、静态编译Qt程序 1、建立文件夹,然后写程序文件XX.cpp 2、qmake -project 3、生成pro文件后在里面加入CONFIG += static 4、qmake 5、生成Makefile后在cxxflags的=后插入-static 6、make 小结:实现Ubuntu 下Qt4.7.1静态编译的内容介绍完了,希望本篇的静态编译读你有所帮助。 【编辑推荐】 8Qt中根据不同版本号使用不同源码 9解析Qt资源文件使用 10深度解析QT 介绍跨平台界面库 11Windows下Qt 静态编译连接 12浅谈Qt 静态编译 原文参考:https://www.sodocs.net/doc/2814647906.html,/symbian-270510.htm

软件开发的具体流程与管理制度详解之欧阳光明创编

软件开发管理制度 第一节 欧阳光明(2021.03.07) 第二节总则 第一条为规范自有软件研发以及外包软件的管理工作,特制定本制度。本制度适用于公司总公司软件研发与管理,分 公司参照执行。 第二条本制度中软件开发指新系统开发和现有系统重大改造。第三条本制度中自行开发是指主要依赖公司自身的管理、业务和技术力量进行系统设计、软件开发、集成和相关的技 术支持工作,一般仅向外购置有关的硬件设备和支撑软 件平台;合作开发是公司与专业IT公司(合作商)共同 协作完成IT应用的项目实施和技术支持工作,一般形式 是公司负责提供业务框架,合作商提供技术框架,双方 组成开发团队进行项目实施,IT系统的日常支持由研发 部和合作商共同承担,研发负责内部支持,合作商负责 外部支持;外包开发是指将IT应用项目的设计、开发、 集成、培训等任务承包给某家专业公司(可以是专业的 IT公司或咨询公司等),由该公司(承包商)负责应用 项目的实施。 第四条软件开发遵循项目管理和软件工程的基本原则。项目管理涉及立项管理、项目计划和监控、配置管理、合作开 发管理和结项管理。软件工程涉及需求管理、系统设 计、系统实现、系统测试、用户接受测试、试运行、系 统验收、系统上线和数据迁移。

第五条除特别指定,本制度中项目组包括业务组(营销部、运维部)、IT组(研发部和合作开发商)。 第二节立项管理 第六条提出开发需求的营销部、运维部等业务部门参与公司层面立项,研发部进行立项的技术可行性分析,共同编写 《立项分析报告》(附件一),开展前期筹备工作。 《立项分析报告》应明确项目的范围和边界。 第七条应用系统主要使用部门将《立项分析报告》上交公司进行立项审批,以保证系统项目与公司整体策略相一致。第八条《立项分析报告》得到批准后,成立项目组(如果是外包开发,则成立外包商项目组;如果是合作开发,则与 外包商共同成立合作开发项目组,以下统称“项目 组”),项目组应包括业务组(由公司相关业务部门组 成)和IT组(自行开发为研发部;外包开发为外包商成 员;合作开发为研发部和外包商成员)。公司委派一名 员工负责监督项目的进度,进行项目管理工作,确保开 发能及时完成并能满足业务需要。项目组人员的选择应 满足项目对业务及技术要求,项目组人员应有足够的业 务和IT技术方面的专业知识来胜任项目各方面的工作。 第三节需求分析 第九条立项后业务组对用户需求进行汇总整理,出具《业务需求说明书》(附件二),并确保《业务需求说明书》中 包含了所有的业务需求。《业务需求说明书》经系统使 用单位(用户)确认,作为业务需求基线。 第十条IT组在获得《业务需求说明书》后,提出技术需求和解决方案,并对系统进行定义,出具《系统需求规格说明

【IT专家】Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确 认qmake 2017/06/02 449 patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 ?patchelf --set-rpath ?patchelf --set-interpreter ?通过这个工具https://github/probonopd/linuxdeployqt如果自己编译不了,也可以下载现成的 ?https://github/probonopd/linuxdeployqt/releases ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict 并为成功,生成的lib目录下的so文件很少。 ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage 也未成功,但lib 生成了很多so文件 ?使用patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。 ?ldd ShanbayDict 显示,rpath已经指向./lib目录 ?patchelf可以通过sudo apt installpatchelf 安装 ?2017年2月24日 ?Qt 5.8编译的Qt程序 ?设置环境变量,确认qmake -v 是自己使用的Qt版本,如果不是,解决办法是: ?export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH ?创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个QtQuick、QtQuick.2、QtMultimedia。 ?增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文

软件开发文档说明书(完整流程)

. 在软件行业有一句话:一个软件能否顺利的完成并且功能是否完善,重要是看这个软件有多少文档,软件开发文档是一个软件的支柱,如果你的开发文档漏洞百出,那么你所开发出来的软件也不可能会好;开发文档的好坏可以直接影响到所开发出来软件的成功与否。 一、软件开发设计文档:软件开发文档包括软件需求说明书、数据要求说有书、概要设计说明书、详细设计说明书。 1、软件需求说明书:也称为软件规格说明。该说明书对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编制目的的就是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解、并使之面成为整个开发工作的基础。 其格式要求如下: 1 引言 1.1 编写目的。 1.2 背景 1.3 定义 2 任务概述 2.1 目标 2.2 用户的特点

. 2.3 假定和约束 3 需求规定 3.1 对功能的规定 3.2 对性能的规定 3.2.1 精度 3.2.2 时间特性的需求 3.2.3 灵活性 3.3 输入输出要求 3.4 数据管理能力要求 3.5 故障处理要求 3.6 其他专门要求 4 运行环境规定 4.1 设备 4.2 支持软件 4.3 接口 4.4 控制

. 2、概要设计说明书:又称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理。流程、程序系统的组织结构、模块划分、功能分配、接口设计。运河行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。 其格式要求如下: 1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料 2 总体设计 2.1 需求规定 2.2 运行环境 2.3 基本设计概念和处理流程 2.4 结构 2.5 功能需求与程序的关系

【IT专家】《Linux与Qt程序设计》知识框架

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 《Linux与Qt程序设计》知识框架 本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析。?1.首先弄清楚概念:定义- 以自己的话理解是什么- 实现的是什么功能- 用在哪些地方 ?2.前面认识到的知识点的特点- 代码实现- 工程代码分析 ?第一部分Linux基础知识第二部分Qt程序基础第5章OtCreator下载与安装5.1 QtCreator下载5.1.1 使用软件中心下载QtCreator5.1.2 访问Qt网站下载相关资源5.2 第一个Qt程序5.3 QtCreator介绍5.3.1 QtCreator界面介绍5.3.2 编译、调试、发布设置5.4 QtDesigner介绍第6章Qt基础6.1 Qt概述与特性6.1.1 Qt简介6.1.2 Qt特性 ?Qt SDK包括:Qt库、Qt Creator IDE、Qt工具:Qt Designer、Qt Linguist(消除国际化流程障碍)、Qt Assistant. ?6.2 Qt与Xll的关系6.2.1 什么是X116.2.2 Qt与Xl16.3 Qt与KDE的关系6.3.1 KDE简介6.3.2 Qt与KDE6.4 Qt库和组件 ?Qt SDK中主要包括类库、开发工具、平台相关支持、授权许可等。 ?其中类库包含了Qt的所有对外发布的功能组件: ?1)Core: Qt4的基本模块,定义了其他模块使用的Qt核心的非GUI类,所有其他模块都依赖于该模块。 ?2)GUI: 定义了图形用户界面类 ?3)WebKit:提供了一个在Qt中使用Web Browser的渲染与解析引擎。 ?4)Graphic View:提供的是一种Qt Model-View编程模式,既可以管理大数量的定制2D graphical items,又可以与它们交互,由于一个视图窗口可以把这些项绘制出来,并支持旋转与缩放。 ?5)Scripting:提供了对脚本(如:Java、Python、Perl、Ruby)的支持。 ?6)OpenGL ?7)XML: 定义了处理XML(eXtensible Markup Language)语言的类。

一个完整的软件开发流程

一个完整的软件开发流程 一、开发流程图 二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。 三、过程说明 (一)项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。

2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。 3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。 4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。 (二)需求阶段 1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。项目管理者联盟 2、产品经理面向整个团队,进行需求的讲解。 3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 (三)设计阶段 1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。 2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。 3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。 (四)开发阶段项目经理博客 1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。

QT程序,如何在ARM板上运行

QT程序,如何在ARM板上运行写这篇文章,主要是为了说明怎么让PC机下编译好的QT程序移植到板子上运行。在说明之前,我们要了解一个事情,就是QT。QT是一个跨平台的开发工具,具有很好的移植性,它所依赖的库文件在PC机上和在ARM上是不一样的,那么我要怎么做呢? 很简单,就是重新编译已经写好的QT程序。为什么需要重新编译,第一,ARM的CPU的指令集和PC的CPU指令集肯定是不一样的,也就是需要交叉编译。第二:由于QT所依赖的库文件不一样,在不同的指令集得CPU里,库是需要移植的。我这里假设ARM板的文件系统里已经移植好了QT相关的库文件(具体怎么移植,我会再写一篇文章),移植好后,在开发板上就可以移植QT程序了。 那么,具体我要怎么编译呢?我们都知道,编译好的QT的程序,一般会有几个.CPP\.h文件,这么多的文件我们要怎么样编译。首先,我们需要安装QT版本的库,一定要注意,这个库文件一定和开发板上的是同一个库。我们假设这个库名字叫qtembed450-arm。以下步骤一定要注意: 1.安装目录一定要在“/usr/local/”下; 2.安装成功后,这步非常关键,一定要设置环境变量,而且,我们要设置三个环境变量,这样做有三个目的:①可以在任何路径下用库里的命令②编译时候可以指定编译规则为 arm-linux-g++③编译时候可以指定到所需要的库文件。那么安装后,输入一下命令:gedit /root/.bashrc.这个命令执行后就进入到设置环境变量的地方,我们要加入以下三个环境变量的设置: export PATH=$PATH:/usr/local/qtembed450-arm/bin export LD_LIBRARY_PATH=$LD_LTBRARY_PATH:/usr/local/qtembed450-arm/lib export QMAKESPEC=/usr/local/qtembed450-arm/mkspecs/default 以上设置非常的重要,非常的关键。呵呵,先照着设置,具体原因我会细谈。注意,我编译用的很重要的qmake-arm 命令,就在/usr/local/qtembed450-arm/bin下,可以打开看看哦!环境变量设置好后,用which qmake-arm 命令来确认下是否成功,呵呵。 3.准备工作做到这里,算是进行一半了,哎,真累啊!还要接着写呢。接下来我们要把我们的编译好的QT程序的文件夹打开,把里面的 .CPP/.h文件拷贝出来,新建立一个文件夹; 4.把以上的文件里的.cpp .h文件复制后新建立一个文件夹。 5.新文件夹建立后,在linux终端中进入到该文件夹所在目录下,执行这个命令:qmake-arm -project命令,千万注意,-project 和arm之间一定要有空格啊!该命令执行后,会生成一个.pro文件,紧接着呢,执行qmake-arm命令,该命令执行后呢,会生成一个Makefile文件,这步很关键哦,没有这步就不会有Makefile文件,一般在这步会出现很多错误,就是库没有发现之类,这个时候,一定要检查前面的步骤,仔细检查看是否是错误。我们这个时候打开Makefile文件看一下,会发现,里面的编译已经变成 arm-linux-g++。这个时候,就踏实,接下来怎么办?还用问吗,直接make下就好了,哈哈,简单吧!看到上面的qtmyjpg文件了吗?这个是可以在开发板上运行的哦!接下来

软件开发流程

拟制:部门:日期:审核:部门:日期:批准:部门:日期:

0.定义 PDT(Product Development Team):产品研发核心小组,是一种跨资源部门的产品研发组织形式,负责从产品立项到批量生产的产品全流程管理,主要目标是根据产品研发 合同书的要求确保产品在市场上获得成功。 软件项目组:由各业务部软件开发人员组成,接受软件开发经理和业务部软件部的共同领导,负责完成产品的需求分析,软件概要与详细设计,编码实现与单元测试,集成调 试和系统联调等工作。 1.目的 本流程旨在有效地规范软件开发过程,进一步提高软件开发的工程化、系统化水平,提高软件产品质量和文档管理质量,以保证软件开发的规范性和继承性。 2.适用范围 2.1 本流程适用于研发系统所有含软件系统开发的项目和单板软件。 2.2 本流程主要指导按照瀑布模型和V模型进行软件开发的过程,对于采用快速应用开发模型、原型法、渐增模型以及螺旋模型来指导软件开发过程的情况,可以对本流程进行适当的取舍和裁剪,但是在《软件开发计划》中必须说明。 3.流程提要 3.1 本流程在各个评审点均有可能反馈至前面的某个阶段,即每个步骤都会影响前面几个步骤的变化,这是一个循环改进的过程。 3.2 PDT软件组和测试组根据产品规格与系统需求数据库进行软件需求分析,定义系统软件规格,提交《软件需求规格说明书》作为软件系统设计和开发的基础。PDT组织软件组和相关人员根据软件规格进行概要设计,提交《软件概要设计说明书》和《软件开发计划》。3.3 测试组在软件概要设计评审通过后介入软件开发过程,启动《产品测试流程》。 3.4 软件组/测试组根据软件概要设计结果进行软件详细设计,提交《软件详细设计说明书》和《单元测试计划》,然后根据设计结果进行软件和测试程序编码。 3.5 编码阶段完成后,软件组和测试组首先对代码进行单元测试与代码审查,然后进行软件集成调试和集成测试,提交相应的软件集成调试记录与测试报告。

01.linux下搭建opencv并在qt中使用

linux下搭建opencv并在qt中使用 作者:vmezr 由于最近要着手做pcduino上的视频聊天的项目,从未接触过pcduino,经过讨论决定使用qt来实现。其实qt和opencv 我都没有接触过,也打算趁机学习一下。言归正传,首先得搭建好需要的环境,第一步是安装配置opencv,然后在qt中使用opencv的库。 (opencv的安装方法部分参考雷雨同鞋哒~) 首先,在官网https://www.sodocs.net/doc/2814647906.html,/中下载opencv原码,选择linux版本进行下载。 以opencv2.4.8为例:(我用的是opencv2.4.13) 1.将压缩包解压到/usr/local/ 2.直接使用sudo apt-get install cmake下载并安装cmake 3.为了方便后续摄像头捕捉等功能还需要下载opencv依赖的一些包: apt-cache search opencv 使用此命令可以直接查到需要下载的依赖包 leo@leo-virtual-machine:/usr/local/opencv/release$ apt-cache search opencv libcv-dev - Translation package for libcv-dev libcv2.3 - computer vision library - libcv* translation package libcvaux-dev - Translation package for libcvaux-dev libcvaux2.3 - computer vision library - libcvaux translation package libhighgui-dev - Translation package for libhighgui-dev libhighgui2.3 - computer vision library - libhighgui translation package libopencv-calib3d-dev - development files for libopencv-calib3d libopencv-calib3d2.3 - computer vision Camera Calibration library

一个完整的软件开发流程精品范本

一个完整的软件开发流程一、开发流程图

二、过程产物及要求 本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。 三、过程说明 (一)项目启动 1、产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。 2、公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。

3、明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。 4、产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。 5、产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。 (二)需求阶段 1、进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。项目管理者联盟 2、产品经理面向整个团队,进行需求的讲解。 3、研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。 4、研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。 (三)设计阶段 1、UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。 2、研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。 3、研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。 (四)开发阶段项目经理博客 1、研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。 2、编码过程一般还需进行服务端和移动端的联调等。

Linux下用QT进行软件开发的流程

Linux下用QT进行软件开发的流程 QT 2009-11-20 17:09:49 阅读69 评论0 字号:大中小 1.用QT Designer开发非GUI的C/C++软件 1)建立工程:双击上图中的C++ Project; 2)新建源程序并添加到工程中:新建hello.cpp后会自动加入到工程, hello.cpp如下: #include using namespace std; int main() { cout<<"Hello! this program is created by QT Designer !"<

软件开发流程规范-详细流程

软件开发流程规范 目录 目录 0 一、概述 (2) 二、开发流程规范 (3) 2.1系统软硬件开发环境 (3) 2.2系统架构(系统组成) (5) 2.3系统功能模块设计 (6) 2.4系统功能开发流程图 (7) 2.5开发修改记录 (8) 三、开发代码规范 (9) 3.1文件结构 (9) 3.1.1 文件信息声明 (10) 3.1.2头文件的结构 (12) 3.1.3定义文件的结构 (15) 3.1.4 头文件的作用 (17) 3.1.5 目录结构 (18) 3.2命名规则 (18) 3.2.1 共性原则 (19) 3.2.2 Windows变量命名规则 (21) 3.3程序风格 (24) 3.3.1 空行 (25) 3.3.2代码行 (26) 3.3.3代码行内的空格 (29) 3.3.4 对齐 (31) 3.3.5 长行拆分 (33) 3.3.6修饰符的位置 (35) 3.3.7 注释 (35) 3.4函数设计 (40) 3.4.1 参数的规则 (40) 3.4.2返回值的规则 (42) 3.4.3函数内部实现的规则 (47) 3.4.4其它建议 (50) 3.4.5使用断言 (50) 3.4.6 引用与指针的比较 (52) 3.5变量类型定义 (56)

四、软件测试规范 (56) 4.1单元测试 (57) 4.2 系统测试 (57) 4.6 业务测试 (59) 4.7 验收测试 (59) 4.8 用户现场测试 (59) 五、软件版本管理 (60) 4.1 版本管理的必要性 (60)

、概述 本文制定烟台开发区德联软件有限责任公司计算机软件开发规范文档。本规范的目的是使公司软件开发项目阶段清晰、要求明确、任务具体、编写的代码规范,使之规范化、系统化和工程化,向公司内从事软件开发的工程师和管理人员提出一系列规范和要求,从而有利于开发过程的控制和管理,提高所开发软件系统的质量,缩短开发时间,减少开发和维护费用,以保证项目高质量、顺利进行。 本规范包含:开发流程规范和开发代码规范等,开发流程规范需要技术开发人员编写相关内容,希望每个技术人员形成习惯,如有新的内容更新会及时通知大家,如有好的规范要求也可通知编制人员及时更新。 本规范为烟台开发区德联软件有限责任公司内部材料,严禁其他商业应用。

相关主题