源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

autoit GUI相关知识

  • 时间:2021-08-19 19:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:autoit GUI相关知识
[h1]GUI 的概念 [/h1] GUI 可由一个或多个 [i]窗口 [/i]组成,这些窗口又带有一个或多个控件。GUI是靠“事件驱动”实现与用户的交互的,比如像点击按钮这样的动作就会引发一个事件。程序在空闲状态时等待事件的发生,捕捉到事件时则根据事件执行相关操作。您可以猜想自己在门边等邮差(一直坐在那儿直到有信被送进来为止),等邮差把信送来了,您就要阅读该信并决定下一步做什么,这就跟GUI的原理一样了:您等待的是邮差,而GUI则等待事件, 当然,在GUI(指程序的界面)运行时您也可以选择要做的其它任务,比如使用GUI函数创建一个自动更新的动态的进度条,同时还可执行其它复杂的任务。   [h1]GUI 的控件 [/h1] 所有用户应该都对控件非常了解了,在窗口上能被点击或进行其它交互的部分都是控件的一种。AutoIt 可创建的控件类型有如下几种(您肯定已在其它Windows程序中见过它们了):
[*]Label[/*] 纯文字控件
[*]Button[/*] 按钮
[*]Input[/*] 单行编辑框,可供输入文字
[*]Edit[/*] 多行编辑框,可供输入文字
[*]Checkbox[/*] 方框按钮,可被选中或取消选中
[*]Radio[/*] 圆形按钮(通常几个一组,每次只能激活/选中其中一个)
[*]Combo[/*] 组合框,带有下拉列表
[*]List[/*] 列表框
[*]Date[/*] 日期选择
[*]Pic[/*] 图片
[*]Icon[/*] 图标
[*]Progress[/*] 进度条
[*]Tab[/*] 标签,每个标器都可包含一组控件
[*]UpDown[/*] 可附加到输入型控件上
[*]Avi[/*] 显示 AVI 格式的剪辑
[*]Menu[/*] 位于窗口顶部的菜单
[*]ContextMenu[/*] 当在窗口上点击右键时出现的菜单
[*]TreeView[/*] 类似于Windows的资源管理器(树型视图)
[*]Slider[/*] 类似于Windows的音量控件(滑动条)
[*]ListView[/*] 按列显示信息的控件(列表视图)
[*]ListViewItem[/*] ListView控件的项目
[*]Dummy[/*] 虚拟的用户控件
  下面是一个单窗口的GUI示例,它包含了许多被AutoIt支持的控件。从中我们可以看到 AutoIt 确实可以创建内容非常丰富的GUI! [img]http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/images/SampleGuiScreenshot.png[/img]   使用 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUICtrlCreate.htm]GUICtrlCreate...[/url] 等函数即可创建控件。在创建时函数会返回[b]控件ID[/b]。关于控件ID有几个注意事项: [*]控件ID是一个正数(意即该数大于0) [/*][*]每个控件ID都具有唯一性(即使有多个窗口存在)。 [/*][*]控件ID可通过 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/intro/au3spy.htm]AutoIt Window Info[/url] 获得。   [h1]GUI 基本函数[/h1] 下面这些就是可用于创建GUI的函数。但这些都是比较初级的应用,如果您已经准备好创建更高级的GUI,则还有其它高级的函数。
[b]函数[/b] [b]解释[/b]
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUICreate.htm]GUICreate[/url] 创建一个窗口。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUICtrlCreate.htm]GUICtrlCreate...[/url] 创建各种控件。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUISetState.htm]GUISetState[/url] 显示或隐藏窗口。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUIGetMsg.htm]GUIGetMsg[/url] 通知GUI检测是否有事件发生(仅用于消息循环)。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUICtrlRead.htm]GUICtrlRead[/url] 读取控件数据。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUICtrlSetData.htm]GUICtrlSetData[/url] 设置/更改 控件的数据。
[url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUICtrlSet.htm]GUICtrlSet...[/url] 对控件进行各种属性设置(颜色、风格等等)。
  在您着手编写任何GUI脚本之前别忘了先包含文件[b]GUIConstants.au3[/b] 到脚本开头位置(该文件包含了在编写GUI程序时要用到的所有变量和常量)。 让我们先来创建一个窗口吧,把它命名为“您好”,设置其长宽分别为200和100个象素。当窗口被创建时它是被隐藏的,所以我们还要先把它给“show(显示)”出来。 #include <GUIConstants.au3> GUICreate("您好", 200, 100) GUISetState(@SW_SHOW) Sleep(2000)   如果运行上面的脚本您会看到出现一个窗口并在两秒后消失。看来还不是很有意思哦...那让我们尝试增加一些文字和一个确定按钮到窗口上吧!我们把文字加到 30, 10 这个位置并把按钮放到 70, 50 这个位置,按钮宽度设为60个象素。 #include <GUIConstants.au3> GUICreate("您好", 200, 100) GUICtrlCreateLabel("最近过得怎样?", 30, 10) GUICtrlCreateButton("还OK吧", 70, 50, 60) GUISetState(@SW_SHOW) Sleep(2000)   好,现在看来还不错。但是怎样使这个GUI能响应我们点击按钮的事件呢?这时我们必须先决定究竟如何处理事件:要么通过[b]消息循环(MessageLoop)[/b] [u]要么[/u]通过[b]OnEvent[/b] 函数。   [h1]GUI 事件模式[/h1] 正如上面所提到的那样,我们有两种基本的GUI模式:[b]消息循环(MessageLoop)[/b]模式和[b]OnEvent[/b] 模式。这两种模式是响应GUI事件的不同的实现方式。具体选择哪一种模式主要看您的 [i]个人喜好[/i] 或者您想要创建的GUI类型。这两种模式都能用于创建任何您想要的GUI,只不过某些时候使用其中一个会比另外一个要好用些。 消息循环是默认的模式。若要切换为 OnEvent 模式请使用 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/AutoItSetOption.htm#GUIOnEventMode]Opt("GUIOnEventMode", 1)[/url] 语句。     [b]消息循环模式(默认)[/b] 在消息循环模式下,脚本大部分时间都在执行一个周期非常短的循环,这个循环通知GUI使用 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/functions/GUIGetMsg.htm]GUIGetMsg[/url] (截获消息)函数。当某个事件发生时 GUIGetMsg 函数把消息作为返回数值返回(比如某个按钮被按下、GUI被关闭,等等)。 在此模式下,只有当我们频繁地使用 GUIGetMsg 函数时才有可能接收到事件,因此您必须确保在每一秒内都有数次调用该函数,否则您的 GUI 将无法响应事件。 [i]这一模式最适合用于那些以 GUI 为重点的脚本中,并且您最关心的就是等待用户事件。[/i] 如需了解关于 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUIRef_MessageLoopMode.htm]消息循环模式[/url] 的更详细的解释请到 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUIRef_MessageLoopMode.htm]此页[/url] 查看。   [b]OnEvent 模式[/b] 在OnEvent模式下,脚本并不需要频繁地要求GUI检查是否有任何事件发生(并根据返回信息处理事件),而是仅当某个事件发生时GUI才临时性暂停脚本并调用一个用户预定义的函数来处理该事件。例如,假定用户点击了按钮1则GUI将暂停主脚本并调用某个预定义的用户函数来处理按钮1事件。当该函数完成处理操作后才回到主脚本继续执行。这个模式比较类似 Visual Basic 的窗体方法。 [i]这一模式最适合用于那些 GUI 处于第二重要地位的脚本中,并且您的脚本需要优先执行其它任务。[/i] 如需了解关于 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUIRef_OnEventMode.htm]OnEvent模式[/url] 的更详细的解释请到 [url=http://www.1sucai.cn/shouce/autoit/AutoIt_CN/html/guiref/GUIRef_OnEventMode.htm]此页[/url] 查看。 [/*]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部