main()

定义主窗口 ————》fd = DefineMainWindow()

创建主窗口————》win = CreateMainWindow()

创建主窗口中的元素----->CreateElements(win);

显示主窗口---------->DisplayMainWindow(win);

最后,进入消息循环——》while(Getmasseage(&msg))

图形界面应用程序的消息处理模型----(send mes to win)

用户操作———》系统内核———》系统消息———》应用程序———》消息处理函数

图形界面应用程序适用于

-多任务的场合

-强用户交互的场合

-非专业计算机用户

gui程序开发概述

-现代操作系统提供原生sdk

-不同操作系统原理相同,sdk不同

GUI 程序开发原理:

  -gui程序在运行时会创建一个消息队列

  -系统内核将用户操作翻译成对应的程序消息

  -程序在运行过程中需要实时处理队列中的消息

  -当队列中没有消息时,程序将处于停止状态

用户操作-----》操作系统内核-----》程序消息-----》gui应用程序

gui 程序开发本质

  -在代码中用程序创建窗口和窗口元素

  -在消息处理函数中根据程序消息做出不同响应;

经典gui程序开发模式

  可视化界面开发

通过所见所得的方式”画出界面“;开发环境自动生成对应的程序代码

消息映射:程序中将具体消息映射到指定函数,当消息触发时,函数被调用。

开发实例:

多数操作系统以C函数提供gui sdk

以windows操作系统为例:

MessageBox();

Qt- 图形界面应用程序的运行模式的更多相关文章

  1. 第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析

    老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法 ...

  2. Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

    自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

  3. 创建Win32图形界面应用程序

    没有什么比创建一个Win32图形界面应用程序能让Win32汇编初学者更兴奋的了! 然而,对于像我这样没有代码便会陷入困境的人来说,看到下面的代码总能让人为之一振,百余行的代码使得Win32GUI编程并 ...

  4. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  5. Hadoop_20_MapReduce程序的运行模式

    1.MapReduce程序的运行模式 1. Windows中运行MapReduce程序 (1)mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行 (2)而处理的数据及 ...

  6. Java计算器的图形界面应用程序

      JAVA计算器的图形界面应用程序 题目简介: 整体分析: 实验代码: /*部分使用插件做界面*/ import java.awt.EventQueue; import javax.swing.JB ...

  7. PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析

    一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果, ...

  8. CentOS启动不显示图形界面直接进入命令行模式

    我现在用的是 CentOS 6.3 开机后进入图形化界面还是进入命令行取决于inittab文件中的配置.该文件位于etc目录下. # vi /etc/inittab 找到下面的语句: # Defaul ...

  9. 转:Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序

    一.原理Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与显示器.键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议 ...

随机推荐

  1. MySQL基础篇(02):从五个维度出发,审视表结构设计

    本文源码:GitHub·点这里 || GitEE·点这里 一.数据场景 1.表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的 ...

  2. axios上传图片遇见问题

    博客后台,vue-quill-editor 编辑器,上传图片,使用sm.ms图床,上传逻辑需要自定义,element-ui,el-upload,自定义http-request上传图片, 'conten ...

  3. BLOB-数据库中用来存储二进制文件的字段类型

    BLOB (binary large object)----二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型. BLOB是一个大文件,典型 ...

  4. JS_0001:js常用知识点

    1,获取常量值 ${} var port = 8080; console.log(`服务器运行在http://${hostName}:${port}`);   2,js中从服务器中获取值,并赋值給ht ...

  5. STL-queue 队列

    #include <iostream> #include <queue> using namespace std; int main() { // queue也很简单 // p ...

  6. t-SNE and PCA

    1.t-SNE 知乎 t-分布领域嵌入算法 虽然主打非线性高维数据降维,但是很少用,因为 比较适合应用于可视化,测试模型的效果 保证在低维上数据的分布与原始特征空间分布的相似性高 因此用来查看分类器的 ...

  7. UVA1401 (字典树加简单dp)

    #pragma GCC optimize(2) #include <bits/stdc++.h> #define ll long long using namespace std; ; ; ...

  8. Connections in Galaxy War ZOJ - 3261 离线操作+逆序并查集 并查集删边

    #include<iostream> #include<cstring> #include<stdio.h> #include<map> #includ ...

  9. 五、JVM之堆内存

    堆结构分代图 堆结构分代的意义 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 堆内存是虚拟机管理 ...

  10. jQuery---width和height的方法

    width和height的方法 //获取div的宽度 $("div").css("width", "400px"); console.log ...