图形化界面设计软件简要介绍

【摘要】:面向使用者的系统工程设计,其目的是要准确、快速地在设计者和使用者之间传递信息和实现功能,也是优化产品性能来适应大众的操作能力,减轻使用者的认知负担。成功的系统工程设计能使得图形化界面更科学合理,更好地满足使用者的需要。对于开发者而言需要主要如下几个方面: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集成开发软件。

posted on 2014-11-14 10:27 搬运工 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/CD-lulu/p/4096610.html

图形化界面设计软件简要介绍相关推荐

  1. Python-Tkinter图形化界面设计

    综合了以下的文章: 转载自:https://www.cnblogs.com/shwee/p/9427975.html 转载自:https://www.jianshu.com/p/91844c5bca7 ...

  2. Java图形化界面设计——容器(JFrame)

    Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构 ...

  3. 零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)

    1.图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI). 即通过鼠标对菜单.按钮等图形化元素触发指令,并从标签.对话框 ...

  4. Python 图形化界面设计

    1.图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单.按钮等图形化元素触发指令,并从标签.对话框等 ...

  5. java 网格布局管理器,Java图形化界面设计——布局管理器之GridLayout(网格布局)...

    网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式 ...

  6. Python-Tkinter图形化界面设计(详细教程 )

    原文链接:https://www.jianshu.com/p/91844c5bca78 声明:本篇文章为转载自https://www.jianshu.com/p/91844c5bca78,在原作者的基 ...

  7. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

  8. Bootstrap4+MySQL前后端综合实训-Day04-AM【新闻管理手机端页面+数据库操作(PowerDesigner 图形化数据库设计软件、SQLyog软件)】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记] 目   录 W3C标准盒子模型和IE盒子模型的区别 Bootstrap4--新闻管理手机端页面 菜 ...

  9. Python + Tkinter 图形化界面设计1 —— 第一个图形化界面

    图形化界面设计的基本理解 Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法.其图像化编程的基本步 ...

最新文章

  1. LeetCode实战:两两交换链表中的节点
  2. Java基础:网络编程
  3. nslang oracle_解决ojdbc14连接oracle报“java.sql.SQLException: Io 异常: Size Data Unit (SDU) mismatch”异常问题...
  4. Windows7旗舰版磁盘分区详解—附分区步骤截图
  5. NLP大神推荐的机器学习入门书单(附大量百度网盘电子书)
  6. (35)FPGA面试题FPGA工程师努力的方向
  7. Datasheet,你会读么?[转]
  8. ffmpeg4.3.2版本:gstavdemux.c:486:24: error: AVStream has no member named ‘index_entries‘(二十七)
  9. 腾讯笔试题编程题——纸牌游戏
  10. 软件开发UI设计流程
  11. 程序员前景一片灰暗?网友:不行找个班上吧
  12. 由于找不到 MSVCR120.dll,无法继续执行代码终极解决方法
  13. 漫谈程序员系列:请区别对待女程序员
  14. Ubuntu/CentOS 磁盘分区扩展
  15. 禅道项目管理,带你避开项目管理中的那些坑
  16. 日语 假名对应的汉字来源
  17. Omi官方插件系列 - omi-transform介绍
  18. 数据帧、数据包、数据报三者区分
  19. 什么是java线程_Java多线程是什么意思?
  20. 写一下拼多多签到的1天,2天....30天的测试用例?其中签到5天可以可以领现金,签到30天可以获得购物卷,断签需要从第一天开始重新签?

热门文章

  1. 安富莱C语言编码规范
  2. Eclipse如何从官网获取历史版本
  3. 好数对的数目(C++)
  4. 蓄电池维护——蓄电池的基本构造和原理
  5. 移动魔百盒问题之我见
  6. 巧妙设置win7系统给WPS文档加密
  7. 一、计算机的基础知识
  8. mysql加减时间-函数-时间加减
  9. (12)梅森素数与完全数
  10. 对于企业是云服务器划算还是自购服务器划算?