【摘要】:面向使用者的系统工程设计,其目的是要准确、快速地在设计者和使用者之间传递信息和实现功能,也是优化产品性能来适应大众的操做能力,减轻使用者的认知负担。成功的系统工程设计能使得图形化界面更科学合理,更好地知足使用者的须要。对于开发者而言须要主要以下几个方面:1,对系统工程应用须要有准确的定位;2,利用设计开发软件提升GUI运行速度;3,系统开发时对系统工程的可扩展性和提供文档帮助。数据库
1. 前言:编程
随着计算机技术的发展,软件技术突飞发展。在工程领域,智能化、自动化的的要求也愈来愈高。因此对应由电脑监控的工程也愈来愈多。伴随着的图形化界面的软件也获得了很大的市场。而在界面软件开发的软件中主要有Delphi、MFC、wxWidgets、Java、GTK+、Qt-Creator等,安全
2. Dephli简介服务器
Delphi概述网络
Delphi,是Windows平台下著名的快速应用程序开发。它的前身便是DOS时代盛行一时的“Borland TurBo Pascal”,最先的版本由美国Borland(宝兰)公司于1995年开发。主创者安德斯.海尔斯伯格。通过数年的发展,此产品转移至Embarchadero公司旗下。架构
Delphi是一个集成开发环境(IDE),使用的核心是由传统的Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境。经过IDE、VCL工具于编译器,配合链接数据库的功能,构成一个面向对象程序设计为中心的应用程序开发工具。框架
2.1Delphi的优缺点编程语言
Delphi主要因为离的太远了,基本上没有什么新人继续学习这种Pascal语言了。编辑器
3. MFC简介函数
MFC概述
微软基础类库(Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库,以C++的形式封装了Windows API,而且包含一个应用程序框架。其中包含的类包含了大量Windows句柄封装和不少Windows的内建控件和组件的封装类。
3.1. MFC的优势
MFC的主要优势是能够用面向对象的方法调用Windows API,以及应用程序开发快捷。MFC将提供不少应用程序开发中经常使用的功能自动化,并提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在Visual C++内部也创建了不少MFC的类向导,使用类向导能够生成从hello world简单程序到活动文档服务器这样的复杂程序。MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。
MFC的缺点是封装过程过于复杂,以至于新用户很难迅速掌握MFC的应用程序框架,以及在调试中定位问题的位置。同时,MFC对象不是线程安全,导致在跨线程访问MFC对象时须要编写额外的代码。另外,MFC的不少类依赖于应用程序向导生成的代码,使得使用Visual C++其它类型的应用程序向导生成的工程中添加MFC支持的难度大大增长。
4. wxWidgets简介
wxWidgets概述
wxWidgets是一个开源的跨平台的C++构架库,它能够体统GUI(图形用户界面)和其它工具。
wxWidgets的主体是由C++构建的,但你并非必需经过C++才能使用wxWidgets。wxWidgets拥有许多其它语言的绑定,使你在用其它语言编写程序得时候也可使用wxWidgets.wxWidgets是一个C++编写的用来提供Gui开发框架,它包含了支持现今全部的操做系统的GUI库和其它一些有用的工具。
4.1 wxWidgets的优势
wxWidgets的优势:1,不管对于我的仍是商业应用都是免费的。2,它是跨平台的GUI库,支持的操做系统很全面,(甚至能够应用在PDA)3,wxWidgets提供GUI是大量使用宏,这就不意味着它是尽量的使用目标系统的native的gui样式。4,它支持的编译器不少。
4.1 wxWidgets的缺点
wxWidgets的缺点:官方文档不全,没有源代码的开发速度快,没有强大全面的rad工具,没有造成浓厚的产业气候。
5. Java简介
Java概述
Java是一种电脑编程语言,拥有跨平台、面向对象、泛型编程的特性。任职于太阳微系统的詹姆斯.高斯林等人于1990年代开发Java语言的邹型,最初被命名Oak。随着1990年代互联网的发展,太阳公司看见Oak在互联网上的应用前景,因而改造Oak并与1995年5月以Java的名称正是发布。Java伴随着互联网的迅猛发展而发展。逐渐成为重要的网络编程语言。
Java的缺点:因为Java编译器和虚拟机的不一样对Java的性能影响比语言自己的影响大得多。
6. GTK+简介
GTK+概述
GTK+最初是GIMP的专用开发库,后来发展为Unix-like系统下开发图形界面的应用程序主流开发工具之一。GTK+是自由软件,而且是GNU的一部分。GTK+的许可协议时LPGL。
GTK+使用的C语言开发,可是其设计者使用面向对象技术。也提供了C++(gtkmm),Perl、Ruby、Java和Python(PyGTK)绑定,其它绑定有Ada、D、Haskell、PHP和全部.NET编程语言。与其它不少部件工具箱不一样,GTK+并不基于Xt。优势是GTK+能够应用于其余系统,其灵活性也很强;而缺点就是它没法利用传统方法为X11定制的X资源数据库。
7. C#简介
C#概述
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++语言派生而来,继承了其强大的性能,同时又以.NET框架类库做为基础,拥有相似Visual Basic的快速开发能力。C#由安德斯.海尔斯伯格支持开发,微软在2000年发布了这种语言。C#已经成为Ecma国际和国际标准组织的标准规范。
C#并不被编译成为可以直接在计算机上执行的二进制本地代码。与Java相似,它编译成中间代码(Microsoft Intermediate Language),而后经过.NET Framework的虚拟机---被称之为通用语言运行库执行。
因为与Java类似,因此在性能上耗费比较大。
8. Qt简介
Qt概述
Qt工具包是一个 C++ 类库,是一个跨平台的构建图形用户界应用程序的一套工具。基于Qt平台开发的源程序,能够不经修改地在Windows及LINUX、Mac OS X和其余不少使用X11的UNIX 版本上编译运行,Qt具备直观和强大的应用程序编程接口,不只支持代码支持编程,也能够结合GUI界面并行开发。Qt除了拥有极好的可移植性和跨平台性,还有拥有很是丰富的API类库,不只有GUI库,还有数据库编程、网络编程接口等等。普通的应用不须要第三方库,Qt自己就能够完成。选择Qt做为软件开发平台,不只能够缩短开发周期提升效率,开源免费的Qt平台更是能够节约开发成本。
8.1 Qt优势
相比Visual Studio,Qt不只可以支持多PC机种操做系统平台,还支持多种嵌入式操做系统,应用范围很广,针对多种平台开发程序,只须要编辑一次代码便可,开发效率极高;其次,Qt简化了内存的回收机制;第三,信号与槽机制至关灵活,不只窗体支持信号与槽机制,非窗体也可使用信号与槽机制;第四,拥有很是丰富的API库和很炫的GUI界面;第五,Qt拥有广大的用户和很是完善的开发文档。
8.2 Qt缺点
虽然Qt有很是多的有点,可是仍是有一些不足。Qt的编译相对较慢,运行的效率比MFC效果差不少,尤为在嵌入式操做系统,运行的效率成为Qt的一个弱点,进程之间通讯则成为Qt发展的一个瓶颈,Qt开发的程序与非Qt开发的程序之间的通讯相对较差。
9.界面开发软件的比较
下表为几种界面开发工具的介绍。
界面库名称 |
Qt SDK |
MFC |
wxWidgets |
GTK+ |
接 口 设 计 |
使用宏和自定义的RTTI。 使用信号与槽机制实现用户代码交互。 能够继承实现扩展 |
基于宏和虚函数,使用特殊格式注释,使用自定义的RTTI系统。 类接口设计优良。 经过回调函数和虚继承重载调用客户代码。 |
宏,自定义RTTI。 使用回调函数与用户代码交互 |
使用信号和槽机制完成用户代码交互 |
界 面 编 辑 器 |
Qt Designer具有完整所见即所得编辑功能。 界面可预览 |
基于资源编辑器,仅能对空间基本布局和少许属性进行调整。 不可预览。 |
无官方界面编辑器。 可以使用第三方界面编辑器。 部分编辑器具备完整的所见即所得功能,且具备预览能力。 |
GLADE,具有所见即所得的界面编辑功能 |
高 级 布 局 |
具有完整的布局功能。多分辨率/多平台下表现良好 |
缺少高级布局功能,多分辨率须要手动或程序中调整。 |
使用Sizer实现多分辨率的布局。功能偏弱。 |
Layout Containers,具有较完整的布局能力 |
平 面 绘 制 |
QCanvas等 |
GD及GDI封装,了选GDI+ |
wxDC等 |
GTK Graphics Context |
平 台 兼 容 性 |
Windows,Linux,Unix,MacOS等 |
Windows,WindowsCE |
Windows,Linux,Unix, MacOS等 |
Windows, Linux, Unix,MacOS等 |
语 言 支 持 |
C++,Python等 |
C++ Only, 支持COM时能够实现Binary级别复用 |
C++,.NET,Phython,Lua, Ruby等 |
C++,C,Python,.NET等 |
IDE 兼 容 性 |
能够集成到Eclipse和VS |
仅Visual Studio |
良好的编译器兼容性,缺少IDE继承 |
暂时未知 |
视 图 - 模 式 分 离 机 制 |
使资源文件保存界面信息。部分组件具有Model-View-Delegate构架 |
使用资源保存控件的基本控件布局,提供Doc-View机制和控件数据交换支持视图分离 |
能够将界面属性生成代码中,也可使用XML格式保存。 |
使用代码完成界面设置。部分组件具有Model-View架构。 |
运 行 库 |
Qt库 |
须要运行MFC运行时连接库 |
|
|
10 总结
GTK+主要用在X Window上,整个设计的构架和许多概念和MFC以及通常的Windows上的程式开发大异其趣,入门门槛比较高,并且主要特点是,他用不具备物件功能的纯“C”语言,模拟物件导向。因此写起来比较复杂艰涩。优势则是能够用C,不须要C++,若是和win32 SDK比较,不会难学多少,缺点是不易上手使用,并且文件比较缺,架构又很是复杂,且提供的东西比起其它无所不包的library,是简陋一点。
wxWidgets和MFC最接近,命令习惯和构架都高度类似,会MFC几乎不用从新学习。此外,它物件封装比MFC要好,提供的功能也多上太多,又跨平台通常知名的MFC程式都会选择用wxWidgets改写,来快速一直原程式到其它平台。
Qt的功能,应该是以上开发软件最强大的,文件也很完整,又有RAD工具,能够辅助开发,而且有商业公司作强力后盾。不但有Windows/X Window/Mac版本,甚至还有嵌入式可用版本,稳定性还不错,物件封装良好,资源比GTK+或wxWidgets多得很是多,并且发行公司提供至关多范例,算是一家开放原始码成功盈利的模范公司。知名的KDE整个是用他开发,证实了它的稳定性和强大功能。
综上所述,在本环境监控工程的开发中,利用了功能强大,且具备很好的平台移植性的Qt—SDK集成开发软件。