001_GUI程序原理分析

Posted luosir520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了001_GUI程序原理分析相关的知识,希望对你有一定的参考价值。

一、 命令行应用程序

命令行应用程序的特点(Command Line Interface)

1、是一种基于顺序执行结构的可执行程序。
2、程序执行过程中不需要与用户产生交互。
3、程序执行后给出最终的运行结果。

命令行应用程序的运行模式

技术图片
特点:程序的运行有固定的开始和固定的结束。
这样的程序设计方法是一种面向过程的程序设计方法:将一个大的问题分解成各种各样小的问题,然后将小的问题在逐个击破,那么整个大的问题也就解决了。

命令行应用程序的适用场景

1、单任务场合
2、无交互或简单交互场合
3、服务器应用场合(因为命令行应用程序它自身运行所占用的系统资源是比较少的)

例:ls所对应的应用程序就是一个命令行应用程序,当敲入ls回车之后列出了目录以及文件,这个过程里面就不会和我们用户产生任何的交互。ls命令行应用程序一旦开始执行,那么必然就完成它单一的任务,当它列出文件及文件夹之后就主动退出了。

二、 图形界面应用程序

图形界面应用程序的特点(Graphic User Interface)

1、是一种基于消息驱动模型的可执行程序。
2、程序的执行依赖于用户的交互过程。
3、程序执行过程中实时响应用户操作。
4、一般情况下程序执行后不会主动退出。

图形界面应用程序的运行模式

技术图片

图形界面应用程序的消息处理模型

技术图片
普通用户要使用计算机就需要操作系统,当操作系统安装在硬件上面之后,普通用户才能使用计算机。
用户的操作主要分为两类,分别是鼠标和键盘操作。当用户对计算机进行操作之后,操作系统内核就会检测到用户的操作,系统内核就会根据用户当前的操作来生成一个系统消息,于是就把这个系统消息发送到一个有焦点的应用程序。
对于图形界面应用程序而言,每个应用程序都会有一个消息队列,系统消息就是被扔到当前有焦点的应用程序的消息队列里,然后消息循环就会从这个队列里面将系统消息取出来,取出来之后会调用消息处理函数。所以我们的图形界面应用程序里面必须编写一个消息处理函数用于处理对应的消息。
比如:在notepad这个图形界面应用程序里,它响应键盘消息之后就会在界面上面去打印字符,所以可以推测出图形界面应用程序的编程多数时候就是编写函数去处理系统消息。

图形界面应用程序适用场景

1、多任务的场合
2、强用户交互的场合
3、非专业计算机用户

例:图形界面应用程序往往都是功能强大的,集多种功能与一身的,比如powerpoint可以编写文字,可以画图,可以编程,还可以将当前的幻灯片存储为其他的文件格式。

三、 总结

技术图片

图形界面应用程序和命令行应用程序是一种互补的关系,当代的大型软件产品架构当中,两种都会用到。命令行应用程序由于单一任务的特性,所以可用于开发后台应用程序;图形界面应用程序由于长得比较好看,它的用户交互性比较好,所以拿来开发用户界面。

 

以上是关于001_GUI程序原理分析的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式linux QT开发——GUI原理分析

嵌入式linux QT开发——GUI原理分析

第1课 - GUI 程序原理分析

GUI程序分析实例

原创001 | 搭上SpringBoot自动注入源码分析专车

AOP 面向切面编程Android Studio 使用 AspectJ 监控方法运行原理分析