## 什么是GUI

GUI是圖形用戶界面(Graphical User Interface)的意思。我們現在用的軟件、程序、游戲。都有用戶界面。我們早已經告別了黑白終端的時代。一個美觀、簡潔的用戶界面是軟件的核心組成部分。想想看,如果王者榮耀的所有英雄都是黑白色的,暴君、大龍是倆豆腐塊,還有多少人會有興趣玩游戲呢?

我們拿QQ舉例子。打開QQ后,出現聯調界面。界面的上方有個窗口欄,里面一般包含 縮小、方法和關閉。窗口欄的下面就是軟件的主題功能了。里面有很多的控件。按鈕、輸入框、列表等等,這些都屬于窗口控件。
****
## tkinter
python使用tkinter模塊實現用戶界面。tkinter內置了窗口、畫板、按鈕、輸入框等常用用戶交互組件。通過這些組件,我們可以搭建一個簡單易用的用戶界面。看例子:

我們通過import語句講tkinter模塊里的所有對象引入進來。代碼第6行`top = TK()` 定義了一個tk對象。我們調用tk對象的 mianloop方法初始化窗口界面。
## 常用控件
一個窗口界面中通常需要輸入框、按鈕等多種控件,tkinter內置了很多控件,具體可以參考下表:

我們來用上面的空間畫一個圖形界面,看代碼:

我們在定義控件時,要注意一下幾個事項:
1)傳入父控件。tkinter的控件是一個完整的樹結構,根是tkinter對象本身。
2)控件的通用屬性和方法。tkinter的控件有一些公共屬性,參考下圖:

3)調用pack方法將控件渲染出來。
## 控件響應
按鈕點擊后是要進行響應的。我們可以傳入響應函數來處理按鈕點擊事件。看代碼:

在按鈕對象的定義中,我們傳入 command參數,參數值是showWidgets函數,showWidgets定義了一個確認框。
## 現代GUI
通過例子我們可以看到python自帶的tkinter模塊實現的界面有些*簡陋*。大部分商業軟件都有華麗的界面展示。除了tkinter,我們還可以學習一些其他的界面實現方案來優化我們的軟件。比如::Qt,GTK,wxPython,Electron
## web&移動設備
隨著互聯網的發展,大部分程序和網站都運行在web上了。相比于桌面應用,web網站具有不用安裝、隨時修改、跨平臺、跨設備等諸多好處。因此,寫桌面應用的人越來越少,相對應的,開發web網站的人越來越多了。

除了web網站,近幾年移動互聯網也特別火,伴隨iOS、Android的流行。App開發也成為一項熱門技能。相比于開發一個桌面應用,發布一個App會酷很多,也會得到更多的用戶。
/https%3A%2F%2Fblueprint-api-production.s3.amazonaws.com%2Fuploads%2Fcard%2Fimage%2F829910%2Fe38b0256-c301-4eca-a55e-be8941f8477c.jpg)
下節課,我們一起用tkinter寫一個小項目。簡單模擬一下圖形界面的開發流程。
**阿達老師-孩子身邊的編程專家**
*完整課程請關注阿達老師,主頁里有完整的課程目錄和觀看地址*
- 課程介紹
- 搭建環境
- 什么是計算機
- 程序是怎么運行的
- 安裝python
- 項目實例-安裝IDE
- 變量和簡單數據類型
- 數據&變量
- 數字
- 字符串
- 布爾類型
- 項目實例
- 容器-列表
- 容器
- 列表
- 項目實例
- 容器-字典
- 定義字典
- 項目實例
- 數據類型總結
- 條件語句
- python條件語句
- 項目實例
- 循環語句
- for循環
- while循環
- 項目實例
- 函數
- 5.0函數定義
- 5.2函數實戰
- 6.文件系統
- 6.1 文件系統介紹&python查找文件
- 6.2 用python讀寫文件
- 7. python操作時間
- 8.面向對象
- 8.1 類和對象
- 8.2 繼承和重寫
- 8.3 面向對象項目實戰
- 9 GUI編程
- 9.1 GUI基礎
- 9.2 備忘清單GUI版
- 10.網絡
- 10.1 網絡的發展
- 10.2 python http
- 11.web開發
- 11.1 web基礎&HTML
- 11.2 CSS&JavaScript
- 11.3 網頁計算器
- 11.3 網站開發實戰-播客搭建
- 11.3 python-web
- 12. 項目實戰-數據處理
- 13. 項目實戰-AI入門
- 13.1 環境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 動畫基礎 Animation
- 從0開始學python第14.5節 pygame 加載圖片和聲音
- 從0開始學python第14.6節 pygame.sprite(上)
- 14.7 pygame.sprite模塊(下)
- 14.8 pygame射擊游戲(一)
- pygame射擊游戲(二)
- 14.8 pygame射擊游戲(三)
- 14.8 pygame射擊游戲(四)
- 14.8 pygame射擊游戲(五)