偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

有關Python程序大揭秘

開發(fā) 后端
本文中,David Mertz 和 Boudewijn Rempt 探討了 Qt 庫,集中討論了允許 Python 程序員訪問 Qt 功能的 PyQt 綁定。

但是這個子類的作者需要相當精確地理解 Logger.log_timestamp() 已經(jīng)做了什么;而且除非通過在子類中完全重寫 .log_timestamp() 方法并且不調(diào)用父方法,否則沒有辦法除去消息。

一個非?;镜?PyQt 應用程序總有一些樣本代碼,這些代碼在哪里都相同,Tkinter 代碼也是這樣。但是,當我們進一步研究設置應用程序所需的代碼,以及顯示窗口構件的代碼時,區(qū)別就顯現(xiàn)出來了。

工具箱是一個使用廣泛的跨平臺 GUI 工具箱,可用于 Windows、Linux、Mac OSX 和許多手持平臺。QT 具有良好結構化(但靈活)的面向?qū)ο蟮慕Y構、清晰的文檔以及直觀的 API。

一般來說,選擇用于應用程序的 GUI 工具箱會是一件棘手的事。使用 Python(許多語言也一樣)的程序員可以選擇的 GUI 工具箱種類繁多,而每個工具箱都有各自的優(yōu)缺點。

有些速度比其它工具箱快,有些比較?。挥行┮子诎惭b,有些更適合于跨平臺使用(對于這一點,還要指出,有些支持您需要滿足的特定特性)。當然,各種庫都相應具有各種許可證。

對于 Python 程序員而言,缺省的 GUI 選擇是 Tk(通過 Tkinter 綁定)— 其原因顯而易見。Tkinter 和閑置的 IDE 是由 Python 創(chuàng)始人編寫的。它們是作為大多數(shù) Python 分發(fā)版的缺省選擇而出現(xiàn)的。標準 Python 文檔討論了 Tkinter,但沒有涉及任何其它 GUI 綁定。這是故意的!

至少可以這么認為,如果 Tk 和 Tkinter 不是這么糟糕,程序員就沒有理由去尋找替代品了。要誘導 Python 程序員放棄缺省選擇,那么工具箱必須提供額外的東西。PyQt 就是這樣一個工具箱。PyQt 所具有的優(yōu)點遠遠超過了 Tkinter(它也有幾個缺點)。Qt 和 PyQt 速度都很快;Qt 和 PyQt 的設計完全是面向?qū)ο蟮模?/P>

Qt 提供了一個設計良好的窗口構件集合,它比 Tk 所提供的要大得多。就其缺點而言,Qt 的許可證受到的限制比許多工具箱(至少在非 Linux 平臺方面)都多;正確安裝 Qt 和 PyQt 常常會很復雜;另外,Qt 是一個相當大的庫。PyQt 應用程序的用戶將需要設法完成安裝 Qt 和 PyQt,這使分發(fā)變得很困難。

PyQt 嚴格遵循 Qt 的發(fā)放許可。特別是,它可用于 UNIX/X11 平臺上的 GPL,并可用于 Zaurus 上的 Qt Palmtop Environment 環(huán)境。還存在用于較老的 Qt 版本的免費(free-as-in-free-beer)Windows 軟件包。PyQt 的商業(yè)許可證可用于 Windows。

對于本文而言,PyQt 有一個方面優(yōu)于許多其它工具箱,它值得我們特別關注。Qt 使用一種稱為信號/插槽(signals/slots)的機制在窗口構件(以及其它對象)之間傳遞事件和消息。

這種機制完全不同于包括 Tkinter 在內(nèi)的大多數(shù)工具箱所用的回調(diào)(callback)機制。使用信號/插槽以靈活且可維護的方式控制對象間通信要比使用脆弱的回調(diào)風格容易得多。應用程序越大,Qt 的這個優(yōu)勢就越重要。

【編輯推薦】

  1. 如何使Python嵌入C++應用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學習資料介紹分享
  4. Python學習經(jīng)驗談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責任編輯:chenqingxiang 來源: 計世網(wǎng)
相關推薦

2009-10-23 13:32:34

.NET CRL

2020-12-28 09:50:50

Python內(nèi)存管理語言

2010-01-22 14:53:21

2010-02-03 13:37:59

Python 特性

2009-05-28 10:12:04

2017-07-06 08:21:27

VSAN加密虛擬機

2017-08-24 09:19:20

分解技術揭秘

2017-07-05 16:43:52

VSAN加密虛擬化

2016-02-29 16:54:10

OpenStack混合云應用軟件定義基礎設施

2024-05-08 16:54:21

Python編程開發(fā)

2010-03-11 13:47:39

2010-08-23 09:45:54

Windows Azu云計算微軟

2011-12-19 20:49:16

Apple

2010-05-20 18:52:06

Eclipse使用SV

2013-04-22 11:13:06

程序員編程誤區(qū)

2010-02-26 09:55:22

Python應用程序

2010-08-09 09:56:12

FlexBuilder

2010-03-01 17:15:03

Python程序開發(fā)

2023-10-08 06:55:30

2019-11-07 22:12:50

網(wǎng)絡網(wǎng)絡體檢網(wǎng)絡技術
點贊
收藏

51CTO技術棧公眾號