<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 8.1.3 事件驅動 圖形構件組成了圖形界面的可見部分,在這些可見構件的背后,還有不可見的程序邏輯。 就好比家用電器都提供操作面板,用戶通過操作面板控制、使用電器功能,在面板的背后是 實現功能的電路邏輯。 GUI 應用程序的特點是注重與用戶的交互,因此程序的執行取決于與用戶的實時交互情 況。例如 Word 程序啟動后,并非一路執行到程序結束,而是在做了必要的初始化工作后就 停下來,等待用戶的下一步動作。用戶可能在文檔窗口中輸入文本,也可能通過菜單設置選 項,還可能點擊工具欄里的存盤圖標,總之是完全不確定的。Word 程序只能等到用戶的交互 動作發生后,才去執行相應的處理代碼。 由于 GUI 程序的執行流程由用戶控制,并且不可預期,為了適應這種特點,我們需要采 用事件驅動的編程方法。普通程序的執行可概括為“啟動——做事——終止”,而事件驅動的 程序的執行可概括為“啟動——事件循環(即等待事件發生并處理之)”。作為特例,GUI 程 序的終止也是由特定事件(如關閉窗口事件)引起的。 事件(event)是針對應用程序所發生的事情,并且應用程序需要對這種事情做出響應。 程序對事件的響應其實就是調用預先編制好的代碼來對事件進行處理,這種代碼稱為事件處 理程序(event handler)。GUI 中最常見的事件是用戶的交互動作,如按下某個鍵或者點擊鼠 標。當然在其他類型的應用程序中也會出現其他類型的事件,例如在各種監控系統中,傳感 器采集環境數據并傳給程序,就可視為發生了需要處理的事件。又如在面向對象程序中,向 某個對象發送消息,也可看成是發生了某種需要響應的事件。事件驅動編程(event-driven programming)就是針對這種“程序的執行由事件決定”的應用的一種編程范型。 事件驅動的程序一般都有一個主循環(main loop)或稱事件循環,該循環不停地做兩件 事:事件監測和事件處理。首先要監測是否發生了事件,如果有事件發生則調用相應的事件 處理程序,處理完畢再繼續監測新事件。那么,主循環如何監測事件以及如何觸發相應的事 件處理程序呢?這個問題牽涉到操作系統的低層機制,比較復雜。好在這部分代碼是獨立于 具體應用程序的,一般都由 GUI 工具包提供支持,應用程序員只需編寫自己的事件處理程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看