python常用的幾種GUI解析

2021-09-04 17:59:25 字數 2234 閱讀 5139

在python中,開始使用gui程式設計的步驟並不複雜,但是它們要求使用者開始做出一些選擇。作為通用程式語言,每個常見作業系統都有可用的直譯器,所以建立圖形使用者介面對於python來說並不是難事。程式設計師可以有很多的選擇,真正困難的是如何為使用者建立乙個簡單的方式來與程式互動。

在python中有幾種常用的gui,我們來解析下。

1、tkinter

如果有乙個包可以被稱為「python的標準gui工具包」,那麼它一定就是tkinter。tkinter是tcl / tk的封裝,是90年代初推出的流行圖形介面。選擇tkinter的優勢是它擁有大量的資源,包括書籍和**示例,以及活躍的使用者社群,如果您有任何疑問,社群成員都可能會幫助到你。除此之外,還有很多簡單的入門示例,而且可讀性非常好。

tkinter可以使用python許可證,在tcl / tk的bsd許可證之上。

在python中可以無需安裝tkinter,就可以簡單方便的使用它。

例如:

只需程式設計時

import tkinter

import tkinter.messagebox

2、wxpython
wxpython帶來了wxwidgets 跨平台gui庫,支援將本機c++引入到python中。wxpython是一種稍微更現代化的方法,它看起來比不同作業系統上的tkinter更加接近原生,因為它不會嘗試建立自己的一組小部件。它的入門使用也比較容易,社群中的開發人員也在不斷增長,但是需要注意的是,可能需要將wxpython與應用程式**在一起,因為它不會隨python自動安裝。

wxpython使用其父專案的wxwindows庫許可證。

這個需要安裝後,才能使用

程式設計時需要匯入

import wx

例如:

3、pyqt
pyqt實現了流行的qt庫,它開闢了在python中開發應用程式的可能性,而且開發出的應用程式在其他平台上擁有熟悉的外觀和感覺。

pyqt可以利用社群中強大的工具和資源,其擁有 commercial和gpl的雙重許可,與qt專案不同,支援pyqt的主要公司都會提供license faq,有助於幫助程式設計師了解這對應用程式意味著什麼。pyqt3支援qt1到qt3。 pyqt4支援qt4,pyqt5支援qt5。它的首次發布也是在2023年,但是當時它叫 pykde,因為開始的時候sip和pyqt沒有分開。pyqt是用sip寫的。pyqt 提供 gpl版和商業版。qt同樣是一種開源的gui庫,qt的類庫大約在300多個,函式大約在5700多個。qt同樣適合於大型應用,由它自帶的qt designer可以讓我們輕鬆來構建介面元素。

python中使用pyqt需要安裝和配置

安裝:1、使用pip命令安裝

2、如想方便設計,還可以安裝pyqt5-tools

例如:

4、easygui

easygui是python用於簡單開發圖形化介面的類庫,不需要安裝即可使用。

程式設計時匯入

import easygui

例如實現效果:

當然還有別的gui,例如pygtk、jython、mfc、pythoncard、dabo、anygui、wpy、ironpython等等。
我認為對於tkinter是每乙個原來搞c的人都應該了解和學習的gui庫,因為它很輕便,小型應用就可以使用它來搞定,而對於較大型應用可以採用pygtk,pyqt,wxpython或 pythoncard來搞定,這樣的話,既可以注重知識的銜接性,也可以快速選定gui進行軟體的開發了。

Python介面常用GUI包

作為pyhon開發者,你遲早都會碰到圖形使用者介面 gui 應用開發任務,這時候我們就需要一些介面庫來幫助我們快速搭建介面,python的介面庫很多,我認識的並不多,這裡只列出幾種我認識的 1.tkinter tkinter 也叫tk介面 是tk圖形使用者介面工具包標準的python介面。tk是乙個...

常用的GUI元件 標籤

標籤 label 通常是乙個用來標識另外乙個元件的含義。可以在標籤上顯示文字 影象和文字影象的組合。建立乙個只顯示文字的標籤有兩種方法 1 直接在生成標籤時定義名字 jlabel label name new jlabel 標籤內容 2 也可以在標籤物件生成後,呼叫settext 方法來在標籤上顯示...

python 常用的幾種定位方式

一,python 常用的8種定位方法 1,使用 id定位 driver.find element by id id 值 driver.find element by id value id值 2,使用 name定位單個元素 driver.find element by name name值 driv...