基于Gnome_Gtk_的图形用户界面的几个实现技巧
Shell脚本中的GUI界面和形化操作的高级技巧

Shell脚本中的GUI界面和形化操作的高级技巧Shell脚本中的GUI界面和图形化操作的高级技巧一、引言Shell脚本作为一种命令行工具,常用于自动化任务和批处理等操作,但在某些情况下,我们可能需要为Shell脚本添加图形化界面和可视化操作。
本文将介绍一些在Shell脚本中实现GUI界面和图形化操作的高级技巧。
二、使用zenity实现简单的对话框Zenity是一个基于GTK+的对话框构建工具,可以轻松地在Shell脚本中创建各种对话框,包括信息框、输入框、选择框等。
通过zenity,我们可以方便地实现图形化的用户交互。
1. 安装zenity在终端中输入以下命令安装zenity:```sudo apt-get install zenity```2. 创建一个简单的信息框在Shell脚本中,可以使用以下命令创建一个简单的信息框:```zenity --info --text "Hello, World!"```这将弹出一个包含"Hello, World!"文本的信息框。
3. 创建一个输入框使用以下命令可以创建一个输入框,要求用户输入一些信息:```zenity --entry --text "请输入你的姓名:"```用户在弹出的对话框中输入姓名后,可以通过脚本获取到输入的信息。
4. 创建一个选择框使用以下命令可以创建一个选择框,让用户从多个选项中选择一个:```zenity --list --radiolist --text "请选择你喜欢的水果:" --column "选择" --column "水果" FALSE "苹果" TRUE "香蕉" FALSE "橙子"```用户在对话框中选择一个选项后,脚本可以根据用户的选择继续执行后续操作。
C语言实现可视化人机界面的有效方法

C语言实现可视化人机界面的有效方法C语言是一种通用的编程语言,被广泛应用于嵌入式系统、操作系统和应用程序的开发中。
尽管C语言本身并不直接支持图形用户界面(GUI)的开发,但通过结合一些第三方库和技术,我们可以实现C语言的可视化人机界面。
在C语言中实现可视化人机界面的有效方法包括以下几种:1.使用图形库:使用图形库可以使界面更加友好,并允许用户通过鼠标和键盘进行交互。
常用的图形库包括SDL、GTK+和Qt等。
这些图形库提供了丰富的绘图、事件处理和界面元素库,方便开发者创建具有各种功能和样式的界面。
2.使用控制台窗口:控制台窗口是C语言程序的默认界面,可以通过在控制台上输出文本、表格和图形来实现可视化界面。
控制台窗口的优势是简单易用,无需额外的库和依赖,适用于简单的界面需求。
3. 使用基于Web的界面:在C语言中,可以通过内嵌Web服务器的方式实现基于Web的可视化人机界面。
通过这种方式,可以使用HTML、CSS和JavaScript等Web技术创建动态交互的界面。
例如,可以使用C语言编写一个带有内嵌Web服务器的程序,然后通过浏览器与用户进行交互。
4.使用ASCII字符界面:ASCII字符界面是使用ASCII字符和控制字符进行界面渲染的一种简单但有效的方式。
通过C语言的输出函数,可以直接在控制台上绘制字符界面,包括文本、边框、按钮等。
虽然ASCII界面的交互性和表现力有限,但它适用于一些简单的控制台应用程序。
5. 使用跨平台的界面库:C语言的一个优势是跨平台性,开发者可以使用一些跨平台的界面库来实现可视化界面。
这样一来,可以在不同的操作系统上运行相同的C语言程序,并保持一致的界面体验。
跨平台的界面库包括FLTK、wxWidgets等。
在实现可视化人机界面时,除了选择适合的技术和库之外,还有一些其他的注意事项:1.设计良好的用户界面:用户界面应该易于使用、直观和符合用户的习惯。
在设计界面时,需要考虑用户的需求和使用习惯,合理布局界面元素,提供明确的操作指引和反馈。
Linux下的GTK图形界面编程

注意fill取FALSE值,expand取TRUE值时与expand取FALSE值,fill值无效的区别。前者的盒子仍是原来创建盒子时指定的大小,而后者的盒子已经缩小到打包组件的大小了。
gtk_box_pack_end()函数的参数与上面描述的一致。只是排列顺序分别是从下到上
,从右到左。
gtk_widget_show (window); /*显示窗口*/
gtk_main (); /*进入睡眠状态,等待事件激活*/
return(0);
}
从上面的程序可以看出,GTK是一个事件驱动工具包,当它运行到gtk_main()函数时会自动睡眠,直到有事件发生,控制权转让给相应的函数调用,在该函数中可以用标准C写出相应的事物逻辑。这与windows 上的程序处理是一样的。
该函数的第二个参数就是上述gtk_signal_connect()函数的返回值,即关联标签。第一个参数指向了去除关联的对象名称。这样可以做到断开事件与回调函数的关联,使得事件发生后,不会调用相关的回调函数。
布局格式
2.1打包盒子
对GTK显示格式的控制是通常通过打包盒子来完成的。widget组件打包可以采用两种方式,水平盒子和垂直盒子。若将widget组件打包进平行盒子,组件就被依次水平的插入窗口;若是垂直盒子,则组件排列是垂直的。产生新的水平盒子的函数为
目前已经开发出来GTK的增强版GTK+。GTK+是将GTK,GDK,GLIB集成在一起的开发包,可以工作在许多类似于UNIX的系统上,没有GTK的平台限制。
1.GTK的消息处理机制
下面我们先看一个基本的例子,该例子产生一个200×200像素的窗口。它不能自己退出,只能通过shell来杀死进程(调用kill命令)。
构建自己的梦幻桌面Linux图形化界面开发全攻略

构建自己的梦幻桌面Linux图形化界面开发全攻略1. 概述Linux是一个强大而灵活的操作系统,通过自定义图形化界面可以为用户提供独特的体验。
本文将介绍构建自己的梦幻桌面Linux图形化界面的全攻略。
2. 选择桌面环境在开始构建自己的梦幻桌面Linux图形化界面之前,首先需要选择适合自己的桌面环境。
常见的桌面环境包括GNOME、KDE、XFCE 等,每个桌面环境都有其独特的特点和功能。
根据自己的喜好和需求选择合适的桌面环境是非常重要的。
3. 自定义主题和壁纸构建梦幻桌面的第一步就是选择适合自己的主题和壁纸。
可以通过桌面环境提供的主题管理器进行主题的切换和安装。
此外,还可以通过网上下载各种自定义主题和壁纸来实现个性化的界面。
4. 安装和配置组件构建梦幻桌面还需要安装和配置各种组件和工具。
例如,安装一个强大的文件管理器可以提升操作效率;安装一个优秀的终端模拟器可以增加命令行操作的乐趣。
根据个人需求选择适合自己的组件进行安装和配置。
5. 定制面板和启动器面板是桌面环境中非常重要的一个组件,通过定制面板可以实现快速启动应用程序、管理窗口、显示系统状态等功能。
可以根据自己的喜好和需求调整面板的尺寸、位置、样式和内容。
启动器可以让你快速访问常用的应用程序,也可以根据个人喜好进行调整。
6. 安装和配置插件插件是一个非常有用的工具,可以增加桌面环境的功能和特性。
例如,安装一个天气插件可以实时显示天气信息;安装一个日历插件可以方便地管理日程安排。
通过安装和配置各种插件可以让桌面环境更加强大和便捷。
7. 优化性能和效率构建梦幻桌面不仅仅是外观的美化,还需要关注性能和效率。
可以通过一些优化技巧和工具来提升系统的响应速度和资源利用率。
例如,清理无用的系统文件和缓存、禁用不必要的服务等。
8. 定制化快捷键和手势快捷键和手势是提高工作效率的重要方式。
可以根据自己的工作习惯和喜好定制一些快捷键和手势,例如,设置一个快捷键用于截图,设置鼠标手势用于切换应用程序等。
Shell脚本中的GUI界面设计和交互技巧

Shell脚本中的GUI界面设计和交互技巧Shell脚本是一种在Unix操作系统中使用的脚本语言,用于自动化任务和编写系统管理脚本。
虽然Shell脚本通常以命令行的形式运行,但通过添加图形用户界面(GUI)可以提供更好的用户体验和可视化效果。
本文将介绍Shell脚本中的GUI界面设计和交互技巧。
一、使用dialog命令创建GUI界面Dialog是一个在Shell脚本中创建对话框的工具,它提供了一些常见的GUI元素,如文本框、标签、按钮等。
通过使用dialog命令,我们可以在Shell脚本中轻松地创建一个基本的GUI界面。
下面是一个示例代码,演示如何使用dialog命令创建一个简单的GUI界面:```#!/bin/bashdialog --msgbox "欢迎使用Shell脚本GUI界面!" 10 30```上述代码使用dialog命令创建一个消息框,显示一个欢迎消息。
其中,`--msgbox`参数指定对话框类型为消息框,后面的文本是要显示的消息内容,`10`表示对话框的高度,`30`表示宽度。
二、添加用户输入和按钮除了简单的消息框,我们还可以在GUI界面中添加用户输入和按钮,以实现更复杂的交互。
下面是一个示例代码,演示如何使用dialog命令添加文本框和确认按钮:```#!/bin/bashresult=$(dialog --inputbox "请输入您的姓名:" 10 30 2>&1 >/dev/tty) dialog --yesno "确认使用姓名:$result 吗?" 10 30if [ $? -eq 0 ]; thenecho "您选择了确认按钮"elseecho "您选择了取消按钮"fi```上述代码使用dialog命令创建一个文本框,用户可以在其中输入姓名。
`2>&1 >/dev/tty`用于将用户输入保存到变量`result`中。
linuxGTK、KDE、Gnome、XWindows图形界面区别是什么

linux GTK、KDE、Gnome、XWindows 图形界面区别是什么Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux图形界面是许多应用程序的可视化与实现,这篇文章主要介绍了GTK、KDE、Gnome、XWindows 图形界面,需要的朋友可以参考下具体介绍一、linux图形界面的实现只是linux下的应用程序实现图形界面(GUI)并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和Windows 3.0一样,Windows 3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别(GUI)的系统,不是独立的操作系统。
同样XFree只是linux下的一个应用程序而已,不是系统的一部分,但是X 的存在可以方便用户使用电脑。
Windows 95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器。
这也WINDOWS和linux的重要区别之一.二、X是协议,不是具体的某个软件X是协议,就像HTTP协议、IP协议一样。
因为输入设备和显示设备不是同一个设备,而且他们需要相互配合,进行画面显示,所以需要一个交互协议,建立他们直接的沟通桥梁。
X协议主要有X应用程序和X服务器组成,如:我需要划个圆,X 应用程序告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画——那是服务器的事情。
GTK+图形界面设计中文版
GTK+ 简介关于本初级教程 l本 GTK+程序初级教程采用了“引导”式的方法来教你如何使用 GTK+。
本教程所用的编程语言 为 C 语言。
并且整个教程中方法已经在 Linux 中测试通过。
本教程适用 GTK+的初级兼代中级 水平的程序员。
GTK+GTK+ 是一种函数库是用来帮助制作图形交互界面的。
整个函数库都是由 C 语 言来编写的。
GTK+函数库通常也叫做 GIMP 工具包。
因为, 一开始 GTK+是用来编写“GIMP” –这个图形处理软件的。
从那以后, GTK+就逐渐成为了 Linux and BSDUnix 下最受欢迎的 用于图形交互界面(GUI)设计的工具包之一。
时至今日,大多数的 Linux 下的 GUI 软件(有图 形交互界面)都是由 GTK+或者 QT 来编写的。
GTK+是一种面向对象式的 API(applicationprogramming interface)。
Glib 是 GTK+的基础,而这种“面向对象系统” 正是由“Glib”来提供的。
GObject 也就是这种面向对象的机制可以为 GTK+绑定很多种开发 语言。
目前存在的语言有:C++, Python, Perl, Java, C#,PHP,等其他高级语言。
GTK+ 和以下“函数库”存在着依赖关系 • • • • • • Glib Pango ATK GDK GdkPixbuf CairoGlib 是一种通用的函数库。
她提供了各种各样的语言特性,譬如说:各种数据类型,字符串函 数, 错误通知, 消息队列和线程。
Pango 是一种函数库, 用来实现国际化和本地化的功能。
ATK 一种平易近人的工具函数包,她提供了快捷键服务为肢体有缺陷的人使用电脑提供了便 利。
GDK 是一种函数库,她为整个 GTK+图形库系统提供了一些底层的“图形实现”和“窗口实现”的方法。
在 Linux 中 GDK 是位于 X 服务器和 GTK+函数库之间的。
教案4.实验2.GNOME桌面基本操作
实验二GNOME桌面基本操作一、实验目的(1) 掌握GNOME桌面环境下系统面板的设置方法。
(2) 掌握GNOME桌面图标的设置方法。
(3) 掌握GNOME桌面环境的设置方法。
二、实验内容1. 在GNOME桌面环境下设置系统面板任务1:设置系统面板的不同位置并隐藏面板。
操作过程:(1) 登录系统进入GNOME图形化界面。
(2) 右击系统面板空白处,从弹出的快捷菜单中选中“属性”命令,弹出“面板属性”对话框。
(3) 单击“边缘面板”选项卡,然后在系统面板示意图中单击上部横条,将系统面板位置设为最上部(类似地也可以设置为左、右端),并选中“自动隐藏”、“显示隐藏按钮”和“在隐藏按钮上显示箭头”复选框。
(4) 单击“关闭”按钮。
此时系统面板处于隐藏状态。
(5) 移动鼠标到界面的上部,系统面板会自动出现。
面板的两侧会出现细长的带有箭头的隐藏按钮。
单击左侧的隐藏按钮,则系统面板向左隐藏;单击右侧的隐藏按钮,则系统面板向右隐藏。
(6) 通过上述步骤和方法,恢复系统面板的默认设置。
任务2:在系统面板上添加、移动和删除图标。
操作过程:(1) 右击系统面板空白处,弹出快捷菜单,再依次选中“添加到面板”→“按钮”→“运行”命令,将“运行”按钮添加进系统面板中。
单击这个图标,将出现“运行程序”窗口。
(2) 右击系统面板中的“运行”图标,弹出快捷菜单,选中“移动”命令,移动鼠标至合适位置再单击鼠标左键,即完成该对象的移动。
(3) 右击系统面板中的“运行”图标,弹出快捷菜单,选中“从面板上删除”命令,即可删除这个图标。
任务3:添加和删除面板。
操作过程:(1) 右击系统面板空白处,弹出快捷菜单,选中“新建面板”中的“角落面板”,创建角落面板。
(2) 右击系统面板空白处,弹出快捷菜单,选中“新建面板”中的“边缘面板”,创建边缘面板。
(3) 右击系统面板空白处,弹出快捷菜单,选中“新建面板”中的“浮动面板”,创建浮动面板。
(4) 右击系统面板空白处,弹出快捷菜单,选中“新建面板”中的“滑动面板”,创建滑动面板。
第3章、GNOME图形界面基本操作
日期与时间
桌面—>管理—>日期与时间
系统语言:
桌面—>管理—>语言
输入发设置
桌面—>首选项—>更多首选项->SCIM输入法设置
菜单和工具栏外观
桌面—>首选项—>彩单和工具栏
四、系统基本配置
配置网卡:桌面->管理->网络
四、系统基本配置
通过命令检测网卡设置: ifconfig -a
四、系统基本配置
启动配置文件:/etc/grub.conf
root指系统(内核)安装的位置
帮助、注销、重启、关机
二、文件管理
文件管理器 文件管理器首选项
二、文件管理
文件浏览器:应用程序->系统工具->文件浏览器
二、文件管理
文件搜索 软盘、光盘的挂载
三、应用程序
三、应用程序
四、系统基本配置
配置显示属性:
桌面—>管理—>显示
检测声卡
桌面—>管理—>声卡检测
LINUX基础应用与配置管理
桂林山水职业学院计算机系朱笑雷
第三章 LINUX图形界面基本操作
1
2 3
桌面与面板
文件管理
应用程序
4
系统基本配置
一、Fedora 桌面与面板
桌面属性
构成:面板面板的位置 面板的背景 新建面板 添加、删除面板内容
巧用Glade 2开发图形界面
果安 装 操作 系统 时选 择 了这 一 开 发 工 具 ,那 么
要 把 GT / K+ GNoME 程 序 的 界 面 描 述 从 源 代 码 就 可 以 直 接 使 用 , 去 了 安 装 的 麻 烦 , 里 就 不 免 这
中分 离 出 来 ,它 使 用 .ld ga e文 件 来 描 述 程 序 界 详 细 介 绍 其 安 装 方 法 。 面 ,这 样 的 好 处 是 使 得 后 期 修 改 程 序 界 面 变 得
1. l G ade
开发工具
Gld 项 目 诞 生 于 1 9 a e 9 8年 ,其 最 初 的 目 的 是 为 GNo ME 提 供 一 个 功 能 强 大 的 图 形 用
首 先 是 创 建 程 序 界 面 的 代 码 非 常 繁 琐 ,特 别 是 户 界 面 开 发 工 具 。 推 出 时 反 应 热 烈 , 后 一 刚 此 在 使 用 不 同 的 布 局 控 件 组 装 界 面 元 素 0 2年 时 推 出 了
说 ,是 相 当 重 要 的 。
本 文 通 过 一 个 具 体 的 应 用 实 例 一 一
E Gld 不 能 进 行 代 码 编 辑 和 项 目 管 理 , 此 需 1 ae ] 因
GNo M E 闹 钟 gAl 的 制 作 , 和 大 家 分 享 要 一 个 图 形 化 的 集 成 开 发 环 境 来 进 行 开 发 、 调 ar m Gl e开 发 和 应 用 的 经 验 , 望 起 到 抛 砖 引 玉 试 和 管 理 程 序 这 里 , 者 推 荐 强 大 的 软 件 集 成 ad 期 笔 的作用 。 开 发 环 境 Ecis l e, 它 可 以 到 其 官 方 网 站 ht : p t / p/
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
64&Q O+64 N64&Q +(D< G<X+(Q E+(D>\cPQ L D4"O8=646& Nk&8:&k GkY.1kG+(D< G+(D> PR ...... D4"O8=<"4J6D=:8&=64& NkMJ6V84+O8M<+&8D"([MA8[4+O8=64&k D4"O8=<"4J6D=:8&=:&(64D k]8:&k PR D4"O8=<"4J6D=:[4< NPRQQ MM 保存设置 ...... D4"O8=<"4J6D=D8&=64& NkMJ6V84+O8M<+&8D"([MA8[4+O8=64&k D4"O8=<"4J6D=D8&= :&(64D NkMJ6V84+O8M<+&8D"([MA8[4+O8=:&(64Dk ...... Z PR PR G2PR G NkMJ6V84+O8M<+&8D"([MA8[4+O8=:&(64Dk
计算机时代 !""# 年 第 $ 期
!!"!
基于 DAEFGHDIJK 的图形用户界面的几个实现技巧
崔尚卿
W中山大学计算机科学与技术系,广东 广州 #%"!X#Y
摘 要:讨论了在 )@ABC 中用 DAEFGHDIJK 库进行图形界面开发的几个实现技巧: 使用双缓冲技术消除屏幕闪烁、 界面文 本的自动翻译和用户配置的保存。 关键词: DAEFGHDIJK ;图形界面;双缓冲;翻译;配置
QQQQ
可以看出,读写配置文件的函数都有 “ D4"O8=<"4T
数据类型包括布尔类型、 浮点数和 J6D=D8&M:8&=C+&+&[$8 ”的形式, 数据还 向量等。应该注意的是, 在调用 :8& 函数设置配置值后, 只是保留在内存中,所以 需 要 用 D4"O8=<"4J6D=:[4< 函 数 把 他 们写到磁盘上。
%& 引言
在 )@ABC 操作系 统 的 发 展 历 史 中 , 出现过多种图形用户接 口, 但或是由于缺乏技术方面的承诺, 或是由于应用受到 限 制 , 其中一些已慢慢被人遗忘了,而 DAEFGHDIJK 由于其优越的性 能和强大的技术支 持 , 已 成 为 当 前 流 行 的 )@ABC 应 用 程 序 的 图 可以用 形用户界面开发库。DAEFGHDIJK 是基于 )DL) 授权的, 它开发开放源代码软件、 自由软件, 甚至商业软件, 却不 需 要 开 销授权费或版权费。同时 DAEFGHDIJK 也提供了丰富的开发功 能, 用户可以方便地进行应用开发。
>=%& 使用双缓冲来避免屏幕闪烁
造成屏幕闪烁的主要原因在于, 计算机每秒 刷 新 屏 幕 许 多 次, 如果在程序清除绘图区后紧接着刷新屏幕, 屏幕将短暂的
图%
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
置一数据表, 结构如表 % 所示。 表 %&& 捕获休眠条件的数据表结构
比如捕获到如下 ’() 语句:
’*)*+,& -& ./01& 销售表 23*/*& 销售日期 4 起始日期 567&
销售日期 8 结束日期
则将当前年月, 即监视年、 监视月对应的该表的销售年月属于 查询范围内的命中次数加 % , 这样随着时间的推移, 某些表对应 年月的使用越来越少, 甚至没有, 这样就可推测从何时开 始 , 某 些数据已渐渐进入休眠状态, 系统可采取自动或用户 自 行 决 策 的方式对数据库中的休眠数据进行转移。最后生成的休眠数据 表结构如表 ! 所示。 表 !&& 休眠数据表结构
DIJK 通 用 图 像 处 理 程 序 工 具 集 DIJK 最 早 用 于 DU1L 的
开发, 是开放源代码的工具集, 它提供了一系列构件来创建应 用程序的界面。
!& DAEFGHDIJK 体系结构
而 DIJK 又是建立在其它软件 DAEFG 是以 DIJK 为基础的, 之上的。图 % 显示了各软件库之间的关系。
o64%9 图形用户界面应用 . 电子工业出版社G0111 . \0cQ b(&X%(Q @(6JJ6&X.@-mnHM@]^t 编程宝典 . 电子工业出版社G0111 .
!
\fcQ 许宏松等 .o64%9 应用程序开发指南 . 机械工业出版社G0111 .
IQQ H
rQ 结束语
本 文 详 细 介 绍 了 在 o64%9 图 形 界 面 开 发 中 经 常 会 遇 到 的 屏幕闪烁、界面文本国际化和配置保存等问题的解决方法, 特别指出了其中的一些约定,希望给有兴趣的读者提供一个 参考。
参文献:
开 发 o64%9 应 用 T 用 @]^t 和 @‘^ 开 发 \YcQ H(6<Q s+(V"F . 实 用 技 术 :
6JN$69O+$ PQ DCA=$69O+$=%4(’J N$69O+$ PR MM 创建新像元区 $69O+$S7CA=$;9O+$=48F NF;C78&TUF;4C"F G F;C78&TU+VV"<+&6"4 .F6W&XG F6CD’&TU+VV"<+&6"4 .X’6DX& GTYPR ...... Z D64&, ’9$":’=’>’4& N@&AB6CD’&, EF6CD’&G@CAH>’4&H9$":’, E’>’4& P, L, DCA=C(+F=$69O+$ NF6CD’&TUF64C"F G, MM 显示画面 F6CD’&TU:&[V’TUJD=D< \@]^=B_‘@H]=a]b]H ?F;C78& PcG $69O+$ G8>84&TU+(8+ .9GQ 8>84&TU+(8+ .[GQ 8>84&TU+(8+ .9G 8>84&TU+(8+ .[GQ 8>84&TU+(8+ .F6C&dGQ 8>84&TU+(8+ .d867d& PR ...... Z 764&Q (8$+64& ?7$"64&8(Q C+&+ PQ L ......Q MM 重画背景缓冲区 7&A=F6C78&=C(+F ?C(+F647=+(8+ Ge%$C+&8=(8<& PR Z
!
+&& *
!!"!
!"#$%&’())*(+,)-".,/,,0112
...... Z
显示空白画面。双缓冲技术是解决屏幕闪烁的一项传 统 技 术 。 双缓冲包括背景缓冲区。该技术并不直接在屏幕上显 示 影 像 , 而是在内存中开辟一片背景缓冲区,在缓冲区中对影 像 更 新 、 修改后再显示。由于传输缓冲区到窗口不包括清除屏 幕 , 所以 不会出现闪烁。 消 除 闪 烁 往 往 要 监 听 处 理 3"4567%(8 事 件 和 89$":8 事 件 , 即在绘图区改变大小或重新暴露时,利用双缓冲技术重绘画 面, 测试代码如下:
:&+&;<) 7;4&) <"45;7%(8=8>84& ?@&AB6CD8&) EF6C78&G @CAH>84&I"4J6D%(8, E8>84& K) L