為什麼很多Python開發者寫GUI不用Tkinter,而要選擇PyQt和wxPython或其他?

時間 2021-05-05 12:20:16

1樓:catseye

乙個提示解決你所有的疑問:

Contents/Frameworks/libtk8.6.dylib/NSDrawerWindow

也就是說你用TK的話,macOS就整體放棄了……至少無法上官方商店,只能自己發布玩兒……全無商業價值……

2樓:啊啊啊

我習慣先看看官方手冊。上次去看官方推薦的手冊 http://

effbot.org/tkinterbook/

一查更新於2023年,這有點古老了。。

3樓:小禾鬥

PyQt是從Qt發展而來的,Qt是乙個非常成熟的GUI設計工具,支援各種強大的功能,所以使用PyQt設計Python GUI程式,是經常使用的

4樓:dc lin

python寫伺服器程式還是比較強的,建議乾脆不要管任何桌面GUI,直接寫網頁伺服器吧,就算在單機上一樣可以用。

直接生成html5頁面,用css3來排版。

5樓:韓光

因為tkinter的坑確實不少

比如說多執行緒的相容性,有的子process很有可能在不通知父執行緒的情況下直接退出,這就造成了父執行緒無限await的死鎖

發現這個問題是因為這兩天忙乙個NLP和IR相關的專案,使用到pylucene和nltk兩個包,為了加速使用multiprocessing裡面的Pool來進行smp,結果每次只要從模組等級import nltk的話,就會造成pylucene的class not defined error或者無限死鎖等待。一番搜尋過後發現了在SO上的這個open question:

Pylucene and multiprocessing

這問題雖然沒有解決但是提問者定位到了是nltk的鍋。於是再經過一番搜尋,我又找到了在nltk的github頁面下的這個open issue:

multiprocessing and nltk don't play nicely together · Issue #947 · nltk/nltk

這個裡面有乙個回答也是做了實驗,指出這個問題很可能是因為nltk裡面引用了tkinter導致的,後邊也有人提到tkinter確實可能有子程序悄無聲息地結束,並且某位numpy社群的大佬也表示numpy也在致力於去除tkinter的引用,這個簡直痛苦得一比

6樓:needle wang

1.寫小東西還行,真正的跨平台真是優點!

但UI越看越醜,TTK主題不多

沒有本地化風格,但能寫出來還是極好的!

2.布局與新增元件的方法的寫法

有悖於主流GUI程式設計的思維邏輯,

不是window.add(widget),而是widget(window)吧,

我是學不會也記不住~

3.相比其他,元件偏少,真偏少,功能偏少。

4.單執行緒!沒有供多執行緒操作元件的API,沒有!QT和GTK等都有。不能多線操作的TK(只允許主線程操作元件)害怕阻塞。

綜上四點,tkinter庫有很大的侷限性。

7樓:

最近搞畢業設計。

軟體最後展示的介面,一開始用Tkinter糙猛快的擼了乙個,正在用PyQt5重寫。

為什麼不用Tkinter?

第一介面賊醜;

第二文件難用的一逼,形同虛設;

第三,GUI開發竟然沒有拖拽工具?反正我是沒找到Tkinter的拖拽工具;

第四,也是重要的一點,答辯的老師顏控。軟體介面好賴決定答辯結果。

我能怎麼辦?我也很絕望啊

8樓:白山黑水

這個問題就像你寫個文件, 可以用自帶記事本, 也可以用word.

簡單寫幾句話用記事本沒問題, 簡單做個小GUI用TK也沒問題.

但複雜的文件, 還是用Word這類更好的工具吧, 同理, 複雜的GUI還是用QT吧.

比爾蓋茨說他可以用basic寫出任何程式, 咱們不是蓋茨, 還是選個好工具吧.

TK是打包直接送給你的東西, 就像記事本就是Windows送給你的一樣.

不用去了解具體的不同, 如果你想真正做Python GUI, 選PyQt就好了. 這樣以後轉其實開發, C++什麼的, QT還是那個QT...

9樓:劉博博

查閱下python gui wiki

GuiProgramming - Python Wiki基本上樓上列出來的都在這份wiki表中。

很贊同 @俠之大者鍵盤俠 的回答,選開發工具本來就是在權衡利弊,沒有十全十美的東西,所以要看自己的需求。

10樓:劉凱

雖然不知道TKinter少了哪些,但我們既然是小馬過河,大牛們都說有坑。我們就隨大流吧。

簡單UI推薦Enthought的Traits/TraitsUI。簡單粗暴有效。

如果需要構建大型應用,推薦使用Enthought Tool Suite裡面其他的東西,可以構建外掛程式來擴充套件自己的應用框架。所以從簡單到複雜,全程覆蓋。不僅限於UI框架。

而是桌面應用框架。

提一句,Enthought貢獻了Scipy等著名的Python package。

11樓:張東

本來是決定用tkinter的,基本上什麼都有,畫圖還可以用matplotlib。但是開工之前突然發現linux 下tkinter不是標準模組。雖然我不用跨平台,但是對tkinter的地位開始懷疑。

隨後改用pyqt了

12樓:付彧

其實你要知道,GUI最後的生成是靠OS來做的,所以不論是TK,wx,qt,最終呼叫OS的功能(模組)來完成GUI的。這樣的話,雖然TK是Python的標準庫,但其實有沒有很好的和OS合作才是好的GUI庫的標準之一。

但是,TK真的很簡單。裝了python的電腦都能執行。如果你只是想寫個小工具,而且有時想在別的電腦上展示(炫)一下。用TK吧。

13樓:

首先並不是不好.

不清楚你朋友說的坑是指哪方面?Tk相對兩外兩個來說功能是要少很多,但也有大牛豐富了一下,

比如:https://

docs.python.org/2/library/ttk.html

Python megawidgets downloadTkinter Table downloadUI要求不高的拿Tk寫,要比另兩個方便.

14樓:劉鑫

真心不好用啊哭……我是wx黨,不過看起來qt也不錯。都是比較完整的。

TK庫對於python來說就是:哦哦哦有個現成的我們把它放進去吧。

特別醜特別簡陋……

wx那麼樸素的東西還有圖元啊圖表啊甚至OpenGL啦這些東西,TK可是……(陷入了長久的思考

為什麼開發者對開發Firefox擴充套件沒有Chrome那麼積極?

這個問開發者就行了。我覺得是開發 Firefox 擴充套件比開發 Chrome 擴充套件慢,而且麻煩,對開發者不友好。這才是根本吧 反對第一的答案,用firefox 8年了,看他叫firefox為火狐就看出來是主觀的。現在chrome還是我第二瀏覽器,FF外掛程式確實差的想一坨屎,還有記憶體溢位,這...

雅虎為什麼中止開發 YUI 庫,各位開發者如何評價?

Jay 12年開始接觸YUI3,用了將近2年,覺得YUI最出色的就是它的事件驅動框架,目前為止在公開的庫裡面還找不到能相比的事件驅動框架 庫,所以自己參考YUI3,重造了Event Framework的輪子,還加入了ckedior的事件優先順序機制 priority 公子小白 現在前端再也不是一套框...

蘋果的開發者賬號為什麼這麼貴

我是小胖子 這就是門票,要想避免犯罪就得提高犯罪的成本,當犯罪的成本大於獲得的收益時,犯罪率就會下來。入場費,人工審核,封號。不過也有漏網之魚,軟體的內容是可以變得,所以繞過審核就好。 你知不知道對很多人來說蘋果開發者賬號不是99刀,是199刀。為什麼呢?因為很多人99刀註冊不下來,蘋果會審核很多註...