Autoit中GUI的概念

阅读: 评论:0

2024年2月8日发(作者:)

Autoit中GUI的概念

Autoit中GUI的概念

AutoitGUI

AutoIt 有能力创建一个简单用户图形界面(GUI),用户图形界面(GUI)由窗口和控件组成.

GUI 可由一个或多个 窗口组成,这些窗口又带有一个或多个控件.GUI是靠"事件驱动"实现与用户的交互的,比如像点击按钮这样的动作就会引发一个事件。

程序在空闲状态时等待事件的发生,捕捉到事件时则根据事件执行相关操作。您

可以猜想自己在门边等邮差(一直坐在那儿直到有信被送进来为止),等邮差把信送来了,您就要阅读该信并决定下一步做什么,这就跟GUI的原理一样了:您等待的是邮差,而GUI则等待事件,

当然,在GUI(指程序的界面)运行时您也可以选择要做的其它任务,比如使用GUI函数创建一个自动更新的动态的进度条,同时还可执行其它复杂的任务.

所有用户应该都对控件非常了解了,在窗口上能被点击或进行其它交互的部分都

是控件的一种。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 按列显示信息的控件(列表视图). ,

ListView控件的项目. ListViewItem

图形控件,可以在上面用GUICtrlSetGraphic函数画, Graphic 出图形.

, Dummy 虚拟的用户控件.

下面是一个单窗口的GUI示例,它包含了许多被AutoIt支持的控件。从中我们可以看到 AutoIt 确实可以创建内容非常丰富的GUI!

使用 等函数即可创建控件。在创建时函数会返回 。关于控件ID有几个注意事项:

, 控件ID是一个正数(即该数大于0)

, 每个控件ID都具有唯一性(即使有多个窗口存在).

, 控件ID可通过 AutoIt 窗口信息工具 获得.

下面这些就是可用于创建GUI的函数。但这些都是比较初级的应用,如果您已经

准备好创建更高级的GUI,则还有其它高级的函数.

GUICreate 创建一个窗口.

创建各种控件.

GUISetState 显示/隐藏窗口.

GUIGetMsg 通知GUI检测是否有事件发生(仅用于消息循环模式).

GUICtrlRead 读取一个控件里面得数据.

GUICtrlSetData 设置/修改一个控件里面得数据.

对控件进行各种属性设置(颜色/样式等等).

在您着手编写任何GUI脚本之前别忘了先 #include <3>

到脚本开头位置(该文件包含了在编写GUI程序时要用到的常用变量和常量).

There are other files containing constants related to the various

controls

you can create on the GUI.

让我们先来创建一个窗口吧,把它命名为"您好,世界",设置其长宽分别为200和100个象素.当窗口被创建时它是被隐藏的,所以我们还要先把它给"show"(显示)出来.

#include <3>

GUICreate("你好,世界", 200, 100)

GUISetState(@SW_SHOW)

Sleep(2000)

如果运行上面的脚本您会看到出现一个窗口并在两秒后消失。看来还不是很有意

思哦...那让我们尝试增加一些文字和一个确定按钮到窗口上吧!我们把文字加

到 30, 10 这个位置并把按钮放到 70, 50 这个位置,按钮宽度设为60个象素。.

#include <3>

GUICreate("你好,世界", 200, 100)

GUICtrlCreateLabel("你好,世界! 过得怎么样?", 30, 10)

GUICtrlCreateButton("确定", 70, 50, 60)

GUISetState(@SW_SHOW)

Sleep(2000)

好,现在看来还不错。但是怎样使这个GUI能响应我们点击按钮的事件呢?这时

我们必须先决定究竟如何处理事件:要么通过 或者 事

件模式( 函数。

正如上面所提到的那样,我们有两种基本的GUI模式:模式和 模式.这两种模式是响应GUI事件的不同的实现方式.具体选择

哪一种模式主要看您的 个人喜好或者您想要创建的GUI类型。这两种模式都能用于创建任何您想要的GUI,只不过某些时候使用其中一个会比另外一个要好用

些。

消息循环是默认的模式。若要切换为 OnEvent 模式请使用

Opt("GUIOnEventMode",1) 语句.

在消息循环模式下,脚本大部分时间都在执行一个周期非常短的循环,这个循环通知GUI使用 GUIGetMsg (截获消息)函数。当某个事件发生时 GUIGetMsg 函数把消息作为返回数值返回(比如某个按钮被按下、GUI被关闭,等等)。 在此模式下,只有当我们频繁地使用 GUIGetMsg 函数时才有可能接收到事件,因此您必须确保在每一秒内都有数次调用该函数,否则您的 GUI 将无法响应事件。

这一模式最适合用于那些以 GUI 为重点的脚本中,并且您最关心的就是等待用

户事件。

如需了解关于 消息循环模式 的更详细的解释请到 此页 查看。

在OnEvent模式下,脚本并不需要频繁地要求GUI检查是否有任何事件发生(并

根据返回信息处理事件),而是仅当某个事件发生时GUI才临时性暂停脚本并调

用一个用户预定义的函数来处理该事件.例如,假定用户点击了按钮1则GUI将暂停主脚本并调用某个预定义的用户函数来处理按钮1事件.当该函数完成处理操

作后才回到主脚本继续执行.这个模式比较类似 Visual Basic 的窗体方法.

这一模式最适合用于那些 GUI 处于第二重要地位的脚本中,并且您的脚本需要优先执行其它任务.

Autoit中GUI的概念

本文发布于:2024-02-08 09:16:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170735497667149.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   事件   模式   按钮
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23