Python GUI 庫優于其他工具箱的內容簡介
如果你想知道關于 Python GUI 庫更多的知識和在實際應用中的操作技巧的話,你可以通過我們的文章去了解相關內容的詳細介紹,希望你在相關的內容介紹中,發現自己想要得到的關于Python GUI 庫的知識。
Qt 工具箱是一個使用廣泛的跨平臺 GUI 工具箱,可用于 Windows、Linux、Mac OSX 和許多手持平臺。QT 具有良好結構化(但靈活)的面向對象的結構、清晰的文檔以及直觀的 API。David Mertz 和 Boudewijn Rempt 探討了 Qt 庫,集中討論了允許 Python 程序員訪問 Qt 功能的 PyQt 綁定。
一般來說,選擇用于應用程序的 GUI 工具箱會是一件棘手的事。使用 Python(許多語言也一樣)的程序員可以選擇的 GUI 工具箱種類繁多,而每個工具箱都有各自的優缺點。有些速度比其它工具箱快,有些比較小;有些易于安裝,有些更適合于跨平臺使用(對于這一點,還要指出,有些支持您需要滿足的特定特性)。當然,各種庫都相應具有各種許可證。#t#
對于 Python 程序員而言,缺省的 GUI 選擇是 Tk(通過 Tkinter 綁定)— 其原因顯而易見。Tkinter 和閑置的 IDE 是由 Python 創始人編寫的,它們是作為大多數 Python 分發版的缺省選擇而出現的。標準 Python 文檔討論了 Tkinter,但沒有涉及任何其它 GUI 綁定。
這是故意的!至少可以這么認為,如果 Tk 和 Tkinter 不是這么糟糕,程序員就沒有理由去尋找替代品了。要誘導 Python 程序員放棄缺省選擇,那么工具箱必須提供額外的東西。PyQt 就是這樣一個工具箱。
PyQt 所具有的優點遠遠超過了 Tkinter(它也有幾個缺點)。Qt 和 PyQt 速度都很快;Qt 和 PyQt 的設計完全是面向對象的;Qt 提供了一個設計良好的窗口構件集合,它比 Tk 所提供的要大得多。就其缺點而言,Qt 的許可證受到的限制比許多工具箱(至少在非 Linux 平臺方面)都多;
正確安裝 Qt 和 PyQt 常常會很復雜;另外,Qt 是一個相當大的庫。PyQt 應用程序的用戶將需要設法完成安裝 Qt 和 PyQt,這使分發變得很困難。(請閱讀本文后面的用于其它語言的 Qt 綁定。)
PyQt 嚴格遵循 Qt 的發放許可。特別是,它可用于 UNIX/X11 平臺上的 GPL,并可用于 Zaurus 上的 Qt Palmtop Environment 環境,還存在用于較老的 Qt 版本的免費(free-as-in-free-beer)Windows 軟件包。PyQt 的商業許可證可用于 Windows。
對于本文而言,PyQt 有一個方面優于許多其它工具箱,它值得我們特別關注。Qt 使用一種稱為信號/插槽(signals/slots)的機制在窗口構件(以及其它對象)之間傳遞事件和消息。這種機制完全不同于包括 Tkinter 在內的大多數工具箱所用的回調(callback)機制。使用信號/插槽以靈活且可維護的方式控制對象間通信要比使用脆弱的回調風格容易得多。應用程序越大,Qt 的這個優勢就越重要。
本文的作者之一 Boudewijn Rempt 已經出版了一本有關使用 PyQt 進行應用程序開發的書籍。GUI Programming with Python: QT Edition(請參閱參考資料)顯示了如何設計和開發完整的 GUI 應用程序,其中包括從最初的構思到分發的全過程。