圖形使用者界面(Graphical User Interface,簡稱 GUI,又稱圖形使用者接口)是指采用圖形方式顯示的計算機操作使用者界面。與早期計算機使用的指令行界面相比,圖形界面對于使用者來說在視覺上更易于接受。然而這界面若要通過在顯示屏的特定位置,以"各種美觀而不單調的視覺消息"提示使用者"狀态的改變",勢必得比簡單的消息呈現花上更多的計算能力。
GUI概述
圖形使用者界面(Graphical User Interface,簡稱 GUI,又稱圖形使用者接口)是指采用圖形方式顯示的計算機操作使用者界面。與早期計算機使用的指令行界面相比,圖形界面對于使用者來說在視覺上更易于接受。然而這界面若要通過在顯示屏的特定位置,以"各種美觀而不單調的視覺消息"提示使用者"狀态的改變",勢必得比簡單的消息呈現花上更多的計算能力。在 GUI 中,并不隻是鍵入文本和傳回文本,使用者可以看到視窗、按鈕、文本框等圖形,而且可以用滑鼠單擊,還可以通過鍵盤鍵入,GUI 是與程式互動的一種不同的方式。
Python GUI常用架構
Flexx
Flexx是一個純Python工具包,用于建立圖形使用者界面(GUI),它使用Web技術進行渲染。 應用程式完全用Python編寫;PScript轉換器動态生成必要的JavaScript。
Python GUI界面程式設計-初識Python GUI界面程式設計-初識
項目位址:
https://github.com/flexxui/flexx入門指南:
https://flexx.readthedocs.io/en/stable/guide/index.html安裝
Flexx需要Python 3.5+,也适用于pypy。 此外,它還依賴以下的庫:
Tornado庫(純Python)。
PScript庫(純Python flexxui項目)
Webruntime庫(純Python flexxui項目)
Dialite庫(純Python flexxui項目)
要安裝最新版本(和依賴項),請使用以下任一指令:
pip install flexx
conda install flexx -c conda-forge
或者用以下方法來獲得更新:
pip install
https://github.com/flexxui/flexx/archive/master.zipwxPython
wxPython是用于Python程式設計語言的跨平台GUI工具箱。它允許Python程式員輕松,輕松地建立具有健壯,功能強大的圖形使用者界面的程式。它是作為一組Python擴充子產品實作的,這些子產品包裝了用C ++編寫的流行wxWidgets跨平台庫的GUI元件 。
官網:
https://www.wxpython.org/Kivy
Kivy是開源Python函式庫,用于開發行動應用程式和其它采用自然使用者界面的多點觸控應用軟體。它可以在Android,iOS,Linux,OS X和Windows執行。采用MIT授權條款,Kivy是自由并且開源的軟體。
https://kivy.org/PyQt
PyQt是Qt公司 Qt應用程式架構的一組Python v2和v3綁定,可在Qt支援的所有平台上運作,包括Windows,OS X,Linux,iOS和Android。PyQt5支援Qt v5。PyQt4支援Qt v4,并将針對Qt v5進行建構。綁定是作為一組Python子產品實作的,包含1000多個類。
https://www.riverbankcomputing.com/software/pyqt/introTkinter
Tkinter 是使用 python 進行視窗視窗設計的子產品。Tkinter子產品("Tk 接口")是Python的标準Tk GUI工具包的接口。作為 python 特定的GUI界面,是一個圖像的視窗,tkinter是python 自帶的,可以編輯的GUI界面,我們可以用GUI 實作很多直覺的功能,比如想開發一個電腦,如果隻是一個程式輸入,輸出視窗的話,是沒用使用者體驗的。所有開發一個圖像化的小視窗,就是必要的。
索引:
https://wiki.python.org/moin/TkInterPywin32
Windows Pywin32允許你像VC一樣的形式來使用PYTHON開發win32應用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,那麼這就是一個不錯的選擇。
https://github.com/mhammond/pywin32PyGTK
PyGTK讓你用Python輕松建立具有圖形使用者界面的程式
https://pygobject.readthedocs.io/en/latest/建立應用程式
使用wxPython架構
Windwos與MAC平台使用pip工具安裝wxPython隻需要一行指令:
pip install -U wxPython
Linux平台:
由于發行版和wx端口(GTK2或GTK3)有多種選項,是以檔案不能全部位于同一檔案夾中,以便通過pip輕松通路。這隻是意味着您需要進一步細化以找到要提供給pip的URL。例如,要擷取适用于Ubuntu 16.04(和16.10,LinuxMint 18以及其他版本)的GTK3 wxPython建構,可以使用如下pip指令:
pip install -U \
-f
https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04\
準備
注意:本部分知識來源與網絡
使用wxPython之前,先了解兩個基礎對象:應用程式對象和頂級視窗。
應用程式對象管理主事件循環,主事件循環是wxPython程式的動力。如果沒有應用程式對象,wxPython應用程式将不能運作。
頂級視窗通常用于管理最重要的資料,控制并呈現給使用者。
兩個基礎對象和應用程式的其他部分之間的關系如下圖所示:
這個應用程式對象擁有頂級視窗和主循環事件。頂級視窗管理其視窗中的元件和其他的配置設定給它的資料對象。視窗和它的元件觸發的事件基于使用者的動作,并接受事件通知以便改變顯示。
Hell Word
代碼:
import wx
app = wx.App(False)
frame = wx.Frame(None,wx.ID_ANY,"Hello,world!!!_Linux就該這麼學")
frame.Show(show=True)
app.MainLoop()Python GUI界面程式設計-初識Python GUI界面程式設計-初識解析:Python GUI界面程式設計-初識Python GUI界面程式設計-初識注意:
可以用-1來替代wx.ID_ANY,-1 就是預設值的意思。另外wxWidgets還提供了其它的标準 ID(v2.8)。 你也可以自定義一個ID,但Getting Started with wxPython 認為,沒有理由那樣做,用标準ID更好。
wx.Frame的完整文法是:
wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition,size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,name="frame")
parent:架構的父視窗。如果是頂級視窗,這個值是None。
id:關于新視窗的wxPython ID号。通常設為-1,讓wxPython自動生成一個新的ID。
title:視窗的标題。
pos:一個wx.Point對象,它指定這個新視窗的左上角在螢幕中的位置。在圖形使用者界面程式中,通常(0,0)是顯示器的左上角。這個預設值(-1,-1)将讓系統決定視窗的位置。
size:一個wx.Size對象,它指定這個視窗的初始尺寸。這個預設值(-1,-1)将讓系統決定視窗的初始尺寸。
style:指定視窗的類型的常量。可以使用或運算來組合它們。
name:架構内在的名字。可以使用它來尋找這個視窗。
Python GUI界面程式設計-初識篇到此結束,感謝您的閱讀,願您可從此文擷取收獲。