濮阳杆衣贸易有限公司

主頁 > 知識庫 > autoit GUI相關(guān)知識

autoit GUI相關(guān)知識

熱門標(biāo)簽:使用電話機(jī)器人電銷是否違法 金融電銷公司怎么辦理外呼系統(tǒng) 安徽400電話辦理 什么渠道可以找外呼系統(tǒng)客戶 雷霆電話機(jī)器人電話 湖州電銷防封卡 信陽話務(wù)外呼系統(tǒng)怎么收費(fèi) 電話智能外呼系統(tǒng)誠信合作 真人和電話機(jī)器人對話

GUI 的概念

GUI 可由一個或多個 窗口 組成,這些窗口又帶有一個或多個控件。GUI是靠“事件驅(qū)動”實(shí)現(xiàn)與用戶的交互的,比如像點(diǎn)擊按鈕這樣的動作就會引發(fā)一個事件。程序在空閑狀態(tài)時等待事件的發(fā)生,捕捉到事件時則根據(jù)事件執(zhí)行相關(guān)操作。您可以猜想自己在門邊等郵差(一直坐在那兒直到有信被送進(jìn)來為止),等郵差把信送來了,您就要閱讀該信并決定下一步做什么,這就跟GUI的原理一樣了:您等待的是郵差,而GUI則等待事件,

當(dāng)然,在GUI(指程序的界面)運(yùn)行時您也可以選擇要做的其它任務(wù),比如使用GUI函數(shù)創(chuàng)建一個自動更新的動態(tài)的進(jìn)度條,同時還可執(zhí)行其它復(fù)雜的任務(wù)。

 

GUI 的控件

所有用戶應(yīng)該都對控件非常了解了,在窗口上能被點(diǎn)擊或進(jìn)行其它交互的部分都是控件的一種。AutoIt 可創(chuàng)建的控件類型有如下幾種(您肯定已在其它Windows程序中見過它們了):

  • Label
  • 純文字控件
  • Button
  • 按鈕
  • Input
  • 單行編輯框,可供輸入文字
  • Edit
  • 多行編輯框,可供輸入文字
  • Checkbox
  • 方框按鈕,可被選中或取消選中
  • Radio
  • 圓形按鈕(通常幾個一組,每次只能激活/選中其中一個)
  • Combo
  • 組合框,帶有下拉列表
  • List
  • 列表框
  • Date
  • 日期選擇
  • Pic
  • 圖片
  • Icon
  • 圖標(biāo)
  • Progress
  • 進(jìn)度條
  • Tab
  • 標(biāo)簽,每個標(biāo)器都可包含一組控件
  • UpDown
  • 可附加到輸入型控件上
  • Avi
  • 顯示 AVI 格式的剪輯
  • Menu
  • 位于窗口頂部的菜單
  • ContextMenu
  • 當(dāng)在窗口上點(diǎn)擊右鍵時出現(xiàn)的菜單
  • TreeView
  • 類似于Windows的資源管理器(樹型視圖)
  • Slider
  • 類似于Windows的音量控件(滑動條)
  • ListView
  • 按列顯示信息的控件(列表視圖)
  • ListViewItem
  • ListView控件的項(xiàng)目
  • Dummy
  • 虛擬的用戶控件

     

    下面是一個單窗口的GUI示例,它包含了許多被AutoIt支持的控件。從中我們可以看到 AutoIt 確實(shí)可以創(chuàng)建內(nèi)容非常豐富的GUI!

     

    使用 GUICtrlCreate... 等函數(shù)即可創(chuàng)建控件。在創(chuàng)建時函數(shù)會返回 控件ID。關(guān)于控件ID有幾個注意事項(xiàng):

  • 控件ID是一個正數(shù)(意即該數(shù)大于0)
  • 每個控件ID都具有唯一性(即使有多個窗口存在)。
  • 控件ID可通過 AutoIt Window Info 獲得。

     

    GUI 基本函數(shù)

    下面這些就是可用于創(chuàng)建GUI的函數(shù)。但這些都是比較初級的應(yīng)用,如果您已經(jīng)準(zhǔn)備好創(chuàng)建更高級的GUI,則還有其它高級的函數(shù)。

    函數(shù) 解釋
    GUICreate 創(chuàng)建一個窗口。
    GUICtrlCreate... 創(chuàng)建各種控件。
    GUISetState 顯示或隱藏窗口。
    GUIGetMsg 通知GUI檢測是否有事件發(fā)生(僅用于消息循環(huán))。
    GUICtrlRead 讀取控件數(shù)據(jù)。
    GUICtrlSetData 設(shè)置/更改 控件的數(shù)據(jù)。
    GUICtrlSet... 對控件進(jìn)行各種屬性設(shè)置(顏色、風(fēng)格等等)。

     

    在您著手編寫任何GUI腳本之前別忘了先包含文件 GUIConstants.au3 到腳本開頭位置(該文件包含了在編寫GUI程序時要用到的所有變量和常量)。

    讓我們先來創(chuàng)建一個窗口吧,把它命名為“您好”,設(shè)置其長寬分別為200和100個象素。當(dāng)窗口被創(chuàng)建時它是被隱藏的,所以我們還要先把它給“show(顯示)”出來。

    #include GUIConstants.au3>

    GUICreate("您好", 200, 100)
    GUISetState(@SW_SHOW)
    Sleep(2000)

     

    如果運(yùn)行上面的腳本您會看到出現(xiàn)一個窗口并在兩秒后消失??磥磉€不是很有意思哦...那讓我們嘗試增加一些文字和一個確定按鈕到窗口上吧!我們把文字加到 30, 10 這個位置并把按鈕放到 70, 50 這個位置,按鈕寬度設(shè)為60個象素。

    #include GUIConstants.au3>

    GUICreate("您好", 200, 100)
    GUICtrlCreateLabel("最近過得怎樣?", 30, 10)
    GUICtrlCreateButton("還OK吧", 70, 50, 60)
    GUISetState(@SW_SHOW)
    Sleep(2000)

     

    好,現(xiàn)在看來還不錯。但是怎樣使這個GUI能響應(yīng)我們點(diǎn)擊按鈕的事件呢?這時我們必須先決定究竟如何處理事件:要么通過 消息循環(huán)(MessageLoop) 要么通過 OnEvent 函數(shù)。

     

    GUI 事件模式

    正如上面所提到的那樣,我們有兩種基本的GUI模式:消息循環(huán)(MessageLoop)模式和 OnEvent 模式。這兩種模式是響應(yīng)GUI事件的不同的實(shí)現(xiàn)方式。具體選擇哪一種模式主要看您的 個人喜好 或者您想要創(chuàng)建的GUI類型。這兩種模式都能用于創(chuàng)建任何您想要的GUI,只不過某些時候使用其中一個會比另外一個要好用些。

    消息循環(huán)是默認(rèn)的模式。若要切換為 OnEvent 模式請使用 Opt("GUIOnEventMode", 1) 語句。

     

     

    消息循環(huán)模式(默認(rèn))

    在消息循環(huán)模式下,腳本大部分時間都在執(zhí)行一個周期非常短的循環(huán),這個循環(huán)通知GUI使用 GUIGetMsg (截獲消息)函數(shù)。當(dāng)某個事件發(fā)生時 GUIGetMsg 函數(shù)把消息作為返回?cái)?shù)值返回(比如某個按鈕被按下、GUI被關(guān)閉,等等)。

    在此模式下,只有當(dāng)我們頻繁地使用 GUIGetMsg 函數(shù)時才有可能接收到事件,因此您必須確保在每一秒內(nèi)都有數(shù)次調(diào)用該函數(shù),否則您的 GUI 將無法響應(yīng)事件。

    這一模式最適合用于那些以 GUI 為重點(diǎn)的腳本中,并且您最關(guān)心的就是等待用戶事件。

    如需了解關(guān)于 消息循環(huán)模式 的更詳細(xì)的解釋請到 此頁 查看。

     

    OnEvent 模式

    在OnEvent模式下,腳本并不需要頻繁地要求GUI檢查是否有任何事件發(fā)生(并根據(jù)返回信息處理事件),而是僅當(dāng)某個事件發(fā)生時GUI才臨時性暫停腳本并調(diào)用一個用戶預(yù)定義的函數(shù)來處理該事件。例如,假定用戶點(diǎn)擊了按鈕1則GUI將暫停主腳本并調(diào)用某個預(yù)定義的用戶函數(shù)來處理按鈕1事件。當(dāng)該函數(shù)完成處理操作后才回到主腳本繼續(xù)執(zhí)行。這個模式比較類似 Visual Basic 的窗體方法。

    這一模式最適合用于那些 GUI 處于第二重要地位的腳本中,并且您的腳本需要優(yōu)先執(zhí)行其它任務(wù)。

    如需了解關(guān)于 OnEvent模式 的更詳細(xì)的解釋請到 此頁 查看。

  • 您可能感興趣的文章:
    • Python+AutoIt實(shí)現(xiàn)界面工具開發(fā)過程詳解
    • python+selenium+autoit實(shí)現(xiàn)文件上傳功能
    • AutoIt腳本的反編譯和代碼格式化問題分析
    • 使用AutoIT實(shí)現(xiàn)自動登錄/退出客戶端軟件,刪除日志
    • autoit 更改個人文件夾的小工具
    • AutoIt3和按鍵精靈的功能對比
    • autoit入門教程小結(jié)
    • Python selenium使用autoIT上傳附件過程詳解

    標(biāo)簽:運(yùn)城 六盤水 岳陽 鶴崗 德州 山南 湛江 濟(jì)南

    巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《autoit GUI相關(guān)知識》,本文關(guān)鍵詞  autoit,GUI,相關(guān),知識,autoit,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《autoit GUI相關(guān)知識》相關(guān)的同類信息!
  • 本頁收集關(guān)于autoit GUI相關(guān)知識的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    尖扎县| 施秉县| 慈利县| 太保市| 陵水| 都匀市| 汕尾市| 青阳县| 和林格尔县| 金溪县| 烟台市| 阿合奇县| 霞浦县| 天峻县| 凤阳县| 连州市| 鄂温| 焉耆| 黔东| 乐清市| 闸北区| 灌南县| 全椒县| 苍南县| 林口县| 清苑县| 乐都县| 綦江县| 烟台市| 扎赉特旗| 西藏| 丽江市| 台安县| 晴隆县| 敦煌市| 永城市| 新源县| 新宾| 云林县| 景宁| 宝坻区|