Python 的 GUI 開發工具

1、flexx

github:https://github.com/flexxui/flexxphp

體驗demo:http://demo.flexx.live/html

一共四種功能,ui比較簡單前端

聊天室,畫畫,走勢圖,估計版本還有很大升級空間,沒事java

Flexx 詳細介紹

Flexx 是一個純 Python 工具包,用來建立圖形化界面應用程序。其使用 Web 技術進行界面的渲染。你能夠用 Flexx 來建立桌面應用,同時也能夠導出一個應用到獨立的 HTML 文檔。由於使用純 Python 開發,因此 Flexx 是跨平臺的。只須要有 Python 和瀏覽器就能夠運行。若是是使用桌面模式運行,推薦使用 Firefox 。python

Flexx 使用模塊化設計,包含一些子系統:react

  • ui - UI 部件linux

  • app - 事件循環和服務器android

  • react - reactive 編程git

  • pyscript - Python to JavaScript transpiler程序員

  • webruntime - to launch a runtime

估計仍是須要一些例子的講解才能會靈活使用

2、htmlpy

官方文檔(英文):https://pypi.org/project/htmlPy/

沒寫到python3.5是否支持

htmlPy 是對 PySide 的 QtWebKit 庫的 Python 封裝。能夠用 HTML5 和 CSS3 來開發漂亮的圖形界面應用程序。基於 Qt 構建,具有高度可定製以及跨平臺支持。兼容 Python2 和 Python3.可用於任何 Python 庫和環境,如 django, flask, scipy, virtualenv 等。也可使用前端框架,如 bootstrap, jQuery, jQuery UI 等。

一個 htmlPy 基本應用包含以下三個組件:

後端:back_end.py

import htmlPy


class BackEnd(htmlPy.Object):

    def __init__(self, app):
        super(BackEnd, self).__init__()
        self.app = app

    @htmlPy.Slot()
    def say_hello_world(self):
        self.app.html = u"Hello, world"

GUI: main.py

import htmlPy
from back_end import BackEnd

app = htmlPy.AppGUI(
    title=u"Sample application")
app.maximized = True
app.template_path = "."
app.bind(BackEnd(app))

app.template = ("index.html", {})

if __name__ == "__main__":
    app.start()

前端:index.html

<html>
  <body>
    <a
    href="BackEnd.say_hello_world"
    data-bind="true">
      Click to say "Hello, world"
    </a>
  </body>
</html>

 

3、python包自帶的GUI

Python 提供了多個圖形開發界面的庫,幾個經常使用 Python GUI 庫以下:

  • Tkinter: Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .Tk 和 Tkinter 能夠在大多數的 Unix 平臺下使用,一樣能夠應用在 Windows 和 Macintosh 系統裏。Tk8.0 的後續版本能夠實現本地窗口風格,並良好地運行在絕大多數平臺中。

  • wxPython:wxPython 是一款開源軟件,是 Python 語言的一套優秀的 GUI 圖形庫,容許 Python 程序員很方便的建立完整的、功能健全的 GUI 用戶界面。

  • Jython:Jython 程序能夠和 Java 無縫集成。除了一些標準模塊,Jython 使用 Java 的模塊。Jython 幾乎擁有標準的Python 中不依賴於 C 語言的所有模塊。好比,Jython 的用戶界面將使用 Swing,AWT或者 SWT。Jython 能夠被動態或靜態地編譯成 Java 字節碼。

1.Tkinter


(網上查了一下評論,說是東西都能寫出來,可是很累,並且最後一次更新在2009年,雖然是標準庫,可是真的很醜,因此不推薦)

 

Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 能夠快速的建立 GUI 應用程序。

因爲 Tkinter 是內置到 python 的安裝包中、只要安裝好 Python 以後就能 import Tkinter 庫、並且 IDLE 也是用 Tkinter 編寫而成、對於簡單的圖形界面 Tkinter 仍是能應付自如。

注意:Python3.x 版本使用的庫名爲 tkinter,即首寫字母 T 爲小寫。

import tkinter

建立一個GUI程序

  • 一、導入 Tkinter 模塊
  • 二、建立控件
  • 三、指定這個控件的 master, 即這個控件屬於哪個
  • 四、告訴 GM(geometry manager) 有一個控件產生了。

實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import Tkinter
top = Tkinter.Tk()
# 進入消息循環
top.mainloop()

以上代碼執行結果以下圖:

tkwindow

實例2:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

from Tkinter import *           # 導入 Tkinter 庫
root = Tk()                     # 建立窗口對象的背景色
                                # 建立兩個列表
li     = ['C','python','php','html','SQL','java']
movie  = ['CSS','jQuery','Bootstrap']
listb  = Listbox(root)          #  建立兩個列表組件
listb2 = Listbox(root)
for item in li:                 # 第一個小部件插入數據
    listb.insert(0,item)

for item in movie:              # 第二個小部件插入數據
    listb2.insert(0,item)

listb.pack()                    # 將小部件放置到主窗口中
listb2.pack()
root.mainloop()                 # 進入消息循環

以上代碼執行結果以下圖:

2.wxPython

官方:https://www.wxpython.org/

安裝:http://www.rpmfind.net/linux/rpm2html/search.php?query=wxPython

教程:http://blog.topspeedsnail.com/archives/1190

 

3、PyQt

PyQt實現了一個Python模塊集。它有超過300類,將近6000個函數和方法。它是一個多平臺的工具包,能夠運行在全部主要操做系統上,包括UNIX,Windows和Mac。 PyQt採用雙許可證,開發人員能夠選擇GPL和商業許可。在此以前,GPL的版本只能用在Unix上,從PyQt的版本4開始,GPL許可證可用於全部支持的平臺。

官網:https://riverbankcomputing.com/software/pyqt/intro

PyQt教程:http://code.py40.com/category/asc6

 

 

 

4、kivy

kivy是一個開源的Python庫,目的是快速開發GUI用戶界面,特別是多點觸摸應用程序。Kivy和python同樣具備出色的跨平臺特性,使用Kivy編寫的程序能夠在Windows,Linux,和mac OSX系統之間無縫切換運行,並且具備本地顯示效果,特別對觸摸屏應用的支持較好,在非觸摸屏上也能夠配合鼠標模擬觸摸效果。Kivy甚至能夠運行在android和IOS設備上,具備極強的跨平臺能力。

官網:https://kivy.org/

中文文檔1.9.1:https://www.kancloud.cn/gthank/kivydoc/127792

github:https://github.com/kivy/kivy-website/

教程1:https://www.cnblogs.com/HacTF/p/8142364.html

教程2:https://www.colabug.com/2116514.html

官網

 

一、安裝kivy

在ubuntu 14.04下面安裝kivy很是簡單,基本上一條命令就能夠解決,

apt-get install python-kivy

二、kivy官方網站

www.kivy.org

三、第一個demo代碼

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

這個例子比較簡單。可是,我以爲不足以說明kivy的本質,充其量代表kivy能夠生成一個app,app裏面有一個按鈕而已。

四、加強版demo

from kivy.app import App
from kivy.lang import Builder

kv = Builder.load_string('''
Button:
    text: "I was created by kv codes"
''')

class TestApp(App):
    def build(self):
        return kv

TestApp().run()

要說表明性,我以爲這個代碼最能體現kivy的不同凡響。由於kv數據能夠用來描述app,而python代碼能夠用來運行app邏輯,二者配合巧妙,用來作app實在是太適合了。若是想讓本身的代碼運行在android上,只須要kivy+qpython打包就能夠了。

五、更多示例代碼

關於kivy更多的代碼,你們能夠用ubuntu下載,

sudo apt-get install python-kivy-examples

 

5、PyGTK

官網:https://pypi.org/project/PyGTK/

PyGTK+Glade能夠很方便設計程序,圖形界面用XML保存,而後動態解析

中文教程:https://blog.csdn.net/qq_21398167/article/details/46349061

 

6、PyGObject

官網:https://pypi.org/project/PyGTK/

 

參考文檔:

1.flexx:https://www.oschina.net/p/flexx

2.htmlpy:https://www.oschina.net/p/htmlpy

3.Tkinter:http://www.runoob.com/python/python-gui-tkinter.html

4.kivy:https://www.colabug.com/2116514.html

相關文章
相關標籤/搜索