自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

有關(guān)Python程序大揭秘

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

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

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

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

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

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

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

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

Qt 提供了一個設(shè)計良好的窗口構(gòu)件集合,它比 Tk 所提供的要大得多。就其缺點而言,Qt 的許可證受到的限制比許多工具箱(至少在非 Linux 平臺方面)都多;正確安裝 Qt 和 PyQt 常常會很復(fù)雜;另外,Qt 是一個相當大的庫。PyQt 應(yīng)用程序的用戶將需要設(shè)法完成安裝 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)于許多其它工具箱,它值得我們特別關(guān)注。Qt 使用一種稱為信號/插槽(signals/slots)的機制在窗口構(gòu)件(以及其它對象)之間傳遞事件和消息。

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

【編輯推薦】

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

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 特性

2010-02-26 09:55:22

Python應(yīng)用程序

2024-05-08 16:54:21

Python編程開發(fā)

2009-05-28 10:12:04

2017-07-06 08:21:27

VSAN加密虛擬機

2017-08-24 09:19:20

分解技術(shù)揭秘

2017-07-05 16:43:52

VSAN加密虛擬化

2016-02-29 16:54:10

OpenStack混合云應(yīng)用軟件定義基礎(chǔ)設(shè)施

2010-03-11 13:47:39

2013-04-22 11:13:06

程序員編程誤區(qū)

2010-03-01 17:15:03

Python程序開發(fā)

2010-08-23 09:45:54

Windows Azu云計算微軟

2010-05-20 18:52:06

Eclipse使用SV

2011-12-19 20:49:16

Apple

2010-08-09 09:56:12

FlexBuilder

2025-02-10 07:00:00

DeepSeek服務(wù)器繁忙服務(wù)器

2023-04-11 16:04:19

Spring Boo端點運維
點贊
收藏

51CTO技術(shù)棧公眾號