美文网首页
图形界面程序的框架

图形界面程序的框架

作者: 短暂瞬间 | 来源:发表于2019-11-06 23:37 被阅读0次

第109篇

极客时间《许式伟的架构课》课程笔记。

事件

  • 任何桌面操作系统每个进程都有一个全局的事件队列Event Queue
  • 所有输入动作都会产生一个事件Event,并且操作系统负责将它放入进程的时间队列
  • 过程如下:硬件中断-->收到对应事件-->确定事件的目标进程-->将事件放入目标进程的事件队列

窗口与事件响应

  • 窗口Window,也叫视图View,是一个独立可复用的界面元素UI Element
  • 窗口响应发送给它的事件Event,修改内部状态,然后调用GDI更新界面显示
  • 响应事件的两种常见机制:一种是事件处理类(EventHandler,在 iOS 中叫 Responder);另一种是用委托(delegate)
  • 不只是窗口可以响应事件,应用程序(Application)也可以

事件分派

  • 事件分派(Event Dispatch)通常由事件分派循环完成,实现全局的事件队列到窗口
  • 事件处理链(EventHandler Chain)负责指派响应事件的目标窗口
  • 不同事件分派过程不同,鼠标和触摸屏的事件一般是事件发生所在窗口,例外是拖放
  • 键盘事件通常是焦点窗口先响应,如果不感兴趣再逐层上升,直到顶层窗口

窗口内容绘制

  • 收到绘制消息时,需要操作系统的GDI子系统进行窗口内容绘制
  • 绘制内容分为两大类:2D和3D
  • 2D内容一般由操作系统GDI支持
  • 3D内容一般由OpenGL或Vulkan跨平台方案实现
  • GDI是操作系统性能要求最高最耗电的子系统,一般通过硬件加速完成

通用控件

  • 操作系统提供的通用界面元素,一般称为控件(Control)
  • 常见控件:静态文本 (Label)、按钮 (Button)、单选框 (RadioBox)、复选框 (CheckBox)、输入框 (Input,也叫 EditBox/EditText)、进度条 (ProgressBar)等

总结

  • 桌面应用程序通常由用户交互驱动
  • 在操作系统的所有子系统中,交互相关的子系统是毫无疑问的差异性最大的子系统
交互相关子系统差异

相关文章

  • 图形界面程序的框架

    第109篇 极客时间《许式伟的架构课》课程笔记。 事件 任何桌面操作系统每个进程都有一个全局的事件队列Event ...

  • mac终端命令(详情介绍)

    如何进入命令行操作模式再图形界面下,用finder 打开 应用程序 》实用程序》终端如果连图形界面都进不去了(比如...

  • 常用的Linux命令行

    命令行是什么 实际上是先有命令行,后有的图形界面。 图形界面使用起来非常方便,但有些服务器木有图形界面。作为程序员...

  • 读《神秘的程序员》

    在看西乔画的漫画《神秘的程序员》,以下是“图形界面”的图片: 实验插入图形界面图片成功,感叹号后无空格。

  • 计划任务WebCron之架构介绍(1)

    什么是WebCron 基于linux crontab,使用django框架,拥有有图形界面管理、分发功能。可对计划...

  • Python常用的包

    GUI 图形界面 1 xypythonPython下的GUI编程框架,与MFC的架构相似 2 PyQt用于Pyth...

  • MATLAB 07 Graphical_User_Interfa

    打开图形界面向导程序(Wizard) 看看有哪些元件(Components):File文件 > Preferenc...

  • 使用FreeMarker模板动态处理JMeter运行脚本

    JMeter是一个性能测试的开源框架,它提供了图形界面和非图形界面两种动行方式。最近在研究搭建一个性能测试的平台,...

  • 微信小程序学习笔记(二)-- 开发之框架

    一、小程序框架介绍(了解) 小程序框架包含小程序的配置、框架接口、场景值、WXML 和 WXS 等 二、小程序的配...

  • angular.js

    angular google 框架 大 约束程序员 程序员听框架的话 遵循框架的规定 库 小 受程序员控制 ...

网友评论

      本文标题:图形界面程序的框架

      本文链接:https://www.haomeiwen.com/subject/sdopbctx.html