minigui结束窗口但是程序没有退出

minigui结束窗口但是程序没有退出,第1张

和 Linux 这样的类 UNIX *** 作系统相比,一般意义上的传统嵌入式 *** 作系统具有一些特殊性。举例而言,诸如 uClinux、uC/OS-II、eCos 等 *** 作系统,通常运行在没有 MMU(内存管理单元,用于提供虚拟内存支持)的 CPU 上;这时,往往就没有进程的概念,而只有线程或者任务的概念,这样,MiniGUI 的运行环境也就大相径庭。因此,为了适合不同的 *** 作系统环境,我们可将 MiniGUI 配置成三种不同的运行模式

MiniGUI-Threads。运行在 MiniGUI-Threads 上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程或者地址空间中运行。这种运行模式主要用来支持大多数传统意义上的嵌入式 *** 作系统,比如 VxWorks、ThreadX、Nucleus、OSE、pSOS、uC/OS-II、eCos等等。当然,在 Linux 和 uClinux 上,MiniGUI 也能以 MiniGUI-Threads 的模式运行。

MiniGUI-Processes。和 MiniGUI-Threads相反,MiniGUI-Processes 上的每个程序是单独的进程,每个进程也可以建立多个窗口,并且实现了多进程窗口系统。MiniGUI-Processes 适合于具有完整 UNIX 特性的嵌入式 *** 作系统,比如嵌入式 Linux。

MiniGUI-Standalone。这种运行模式下,MiniGUI 可以以独立任务的方式运行,既不需要多线程也不需要多进程的支持,这种运行模式适合功能单一的应用场合。比如在一些使用 uClinux 的嵌入式产品中,因为各种原因而缺少线程支持,这时,就可以使用 MiniGUI-Standalone 来开发应用软件。

一般而言,MiniGUI-Standalone 模式的适应面最广,可以支持几乎所有的 *** 作系统(目前只用来提供对 Linux/uClinux *** 作系统的支持);MiniGUI-Threads 模式的适用面次之,可运行在支持多任务的实时嵌入式 *** 作系统,或者具备完整 UNIX 特性的普通 *** 作系统;MiniGUI-Processes 模式的适用面较小,它仅适合于具备完整 UNIX 特性的嵌入式 *** 作系统,比如 Linux。

但不论采用哪种运行模式,MiniGUI 为上层应用软件提供了最大程度上的一致性;只有少数几个涉及初始化的接口在不同运行模式上有所不同。

MiniGUI-Processes 运行模式

MiniGUI-Processes 运行模式是 MiniGUI V2.0.x 在 MiniGUI-Lite 运行模式基础上为具有多进程支持的嵌入式 *** 作系统提供洞指的。MiniGUI V1.6.x 及以前版本为具有多进程特性的 Linux *** 作系统提供 MiniGUI-Lite 运行模式,使之在高效的客户/服务器架构之上运行多个客户进程,从而充分利用进程地址空间保护这样的高级特性,有了这样的特性,可大大提高基于 MiniGUI 的嵌入式系统的灵活性、稳定性以亩凳及可扩展性。比如,我们可以在 MiniGUI-Lite 上运行多个 MiniGUI 客户进程,而单个进程的异常退出,不会影响其他的 MiniGUI 客户进程。而且在这种架构之上,我们可以非常方便地集成第三方应用程序。其实,这也是许多嵌入式设备开发商采用 Linux *** 作系统的重要理由。 但是,MiniGUI-Lite 运行模式虽然提供了多进程支持,但无法同时管理来自不同进程间的窗口,因此,MiniGUI-Lite 用层的概念将不同的进程之间的窗口区分开来。这种实现方法虽然可适迅颤旅用于大多数屏幕分辨率较小的嵌入式设备,但仍然给应用程序的开发带来了不便。

MiniGUI V2.0 则彻底解决了上述问题。MiniGUI V2.0 在 MiniGUI-Lite 运行模式基础上,实现了完整的多进程环境中的窗口系统,来自不同进程的窗口可以在同一桌面上协调存在。图 4.2 给出了 MiniGUI V1.6.x 的 MiniGUI-Lite 运行模式及 MiniGUI 2.0.x 的 MiniGUI-Processes 运行模式在运行相同应用程序情况下的界面效果。

右侧栏的图1运行了 vcongui 和推箱子游戏这两个客户进程。可以看到,我们在运行推箱子程序之后,就看不到 vcongui 程序了;右侧栏的图2运行了 vcongui、picview 和推箱子游戏这三个客户进程,但我们可在桌面上看到所有的客户进程窗口。

相比 MiniGUI-Lite,MiniGUI-Processes 运行模式具有明显的优势。这使得 MiniGUI 不仅可适用于传统的嵌入式 *** 作系统(MiniGUI-Threads),还可适用于具有多进程特性的嵌入式 *** 作系统,比如 Linux *** 作系统。另外,MiniGUI-Processes 也保留了 MiniGUI-Lite 的层概念,用户可以将来自不同客户进程的窗口放到不同的层中,从而实现类似 X Window 那样的工作区。有了 MiniGUI-Processes 运行模式,MiniGUI 的应用领域将进一步扩大,不仅可用于高端的嵌入式设备,还可能用于桌面环境。

minigui怎么关闭主窗口下的子窗口答案,setappdata(0,‘output’‘,output) 然后在在 output 函数里面get 这个句柄。

如何解橘迅决要看要需求是什么,如果是“不希望子窗口被关闭”,那么就要在子窗口的CloseRequest_Fcn中加以阻止。

如果是”希望子窗口被关闭,但不希望这一行为会引起世渣程序错误“,那么可以在这一句中加一个判搜伍悄断:如果output不存在则进行其他的处理。

2022-08-31

MiniGUI

MiniGUI 是 Linux 控制台上运行的,基于 SVGALib 和漏型 LinuxThread6 库的多窗口图形用户界面支持系统。MiniGUI 采用了类 Win32 的 API 接口, 实现了简化的类 Windows 98 风格的图形用户界面。 MiniGUI也是一个窗口系统,他的主要组成元素是窗口,在这个基础上 MiniGUI 中的窗口可以基本分四类,分别为主窗口、对返扒猜话框、控件和主窗口中的窗片。MiniGUI 中的主窗口和 Windows 应用程序的主窗口概念类似, MiniGUI 中的每个主窗口对应于一个单独的线程,通过函数调用可建立主窗 口以及对应的线程。每个线程有一个消息队列,主窗口从这一消息队列中获取消息并由窗口过程(回调函数)进行处理。 MiniGUI的目标是保持现有小巧的特点,在 Linux 控制台上提供一个小 的窗口系统支持,"小"是MiniGUI的特色。同时MiniGUI又将尽力与微软的 MSWindows API保持兼容。这么定位是希望MiniGUI可以在未来以Linux 为基础的应用平台上提供一个简单可行的 GUI 支持系统,让MiniGUI 可以 应用在 Windows CE 可以应用的任何场合。

QT/Embedded

Qt是Trolltech 公司的一个产品,是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。 自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。

Qt/Embedded 是 Trolltech 公司的另一个产品,虽然走Open Source开发路线,采用GPL授权,但商业用的要付费。Qt/Embedded是Qt的嵌入式Linux端口,是完整的自包含C++GUI和基于Linux的嵌入式平台开发工具。大范围的Qt/Embedded API可用于此迹多种开发项目。Qt/Embedded可以开发市场上多种类型的产品和设备,从消费电器(移动电话、联网板和set top盒)到工业控制设备(如医学成像设备、移动信息系统等)。这套环境提供的API和Qt/Windows 与Qt/X11相同,但不需要使用到X11,取而代之的提供从硬件接口、绘图程序库和完整的GUI工具。Qt/Embedded 对存储内存的需求约在800kB到3MB(Intel 下x86)。其另一个特点就是跨平台,用Qt API开发出来的应用程序,可以在不同的 *** 作系统和视窗系统上执行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12241173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存