2010-06-14 31 views
5

可能重複:
Is Python any good for GUI development?哪些多平臺GUI框架可以用來編寫Python應用程序?

我寫了一個Python的GUI應用程序,並使其在Linux,Windows和Mac上運行。

我使用的框架是PyGTK的。 最終結果並不是很好:Mac上的應用程序看起來很糟糕,它在Windows上都不是「本地的」。此外,在Mac上,窗戶的行爲有時是錯誤的,模態對話框出現在主窗口下方。

我已經探索其他框架和我發現,一個端口可以是真的很難:

  • PyQt的它是巨大的,難以安裝和Mac下分發;
  • PyGui很差:我至少需要表和樹視圖;
  • wxPython的明確規定,你必須使用一個自定義的Python構建適用於Mac
  • Tkinter的:沒有檢查,只是有這樣的印象,這是過時的

我知道這個問題可能類似於https://stackoverflow.com/questions/394039/which-python-gui-framework,但在該線程中,可移植性問題並未真正考慮在內。

Windows和Mac是必須的,因爲大多數我的用戶有系統。

你也可以推薦一些書嗎?

+0

看看這個:http://stackoverflow.com/questions/115495/is-python-any-good-for-gui-development – systempuntoout 2010-06-14 14:11:54

+0

你是怎麼在Windows上安裝PyGTK的? – phkahler 2010-06-14 14:21:17

+0

這顯然不是重複的,它是一個非常有用的問題,即使標題可以稍微調整一下。這個問題是關於你編寫Python GUI應用程序有什麼選擇。 – sorin 2014-03-22 14:22:58

回答

0

那麼,其實我試過幾個解決方案,我想我會繼續wxPython

有一些值得注意的問題,首先我必須使用舊的2.5 Python。不過,我可以爲Mac創建一個可移植的.app目錄,併爲Windows自動安裝.exe(以及一對Makefile(以創建它們))。

的停靠尚未啓動,但(實際工作和更緊迫的問題:-(到達)。

感謝所有誰替代的辦法,但一些特定應用的問題做出這些選擇沒有真正吸引力。

  1. 我想我的應用程序只使用一種語言/技術,易於維護和部署,使混合閃存/航空等方法被廢棄。
  2. 的應用也將離線工作,所以沒有客戶端/服務器可用方法
  3. 作爲wxPython並不是最易於使用的框架,我過去一直在使用swing,而且實際上很難。也許在此期間更強大的工具可用,但我覺得wxGlade足以滿足我的需求,而且國內唯一一個平臺的觀點也適用反對使用Java

但是我有我的觀點,從所有的答覆擴大。再次感謝

2

根據我的經驗,在Python GUI編程Mac平臺是永遠不會快樂的體驗。無可否認,我只使用過PyQT和PyGTK。窗口行爲從未如此正確,並且小部件無法按預期工作。這就是說,這裏是一個資源,列出,廣告nauseum,Python的GUI工具包和相應的平臺,他們的目標:

http://wiki.python.org/moin/GuiProgramming

+0

該頁面沒有被維護:例如它說PyGui它不支持Windows,而它卻是。 – Iacopo 2010-06-14 14:09:15

+0

@lacopo - 可能沒有得到很好的維護 - 但它仍然是一個有效和有用的資源,應該爲探索可能的解決方案提供一個體面的起點。 – thetaiko 2010-06-14 14:18:13

+0

@lacopo:適用標準Wiki參數。如果你可以看到一個錯誤,請繼續並修復它。 – Oddthinking 2010-06-15 15:53:03

0

我不認爲這實際上是一個Python的問題。您對跨平臺GUI工具包本身感到不滿 - 對於您所問的內容,沒有任何Python-y。也許你需要做的是找到一個你滿意的GUI工具包,然後擔心如何連接你的Python應用程序。

網絡已成爲首屈一指的元平臺,對嗎?你可以使用HTML/Javascript/Flash界面嗎?

這樣的事情?

http://www.adobe.com/devnet/flex/articles/flex_ui_print.html還是這個?

http://pyjs.org/(搜索睡衣 - 桌面當你到達那裏)

+0

由於他使用python,因此需要一個python支持的工具包。儘管flex和AIR非常酷,並且跨平臺運行得非常好(除非它非常重),但我認爲這不能解決他的問題。 – MacAnthony 2010-06-14 15:50:43

+0

我有一個運行良好的庫,應用程序正在打包。圖書館是非常pythonic,我不想改變它;我想擴展和改進,而不是從頭開始重寫。與PyGTK一起工作很快,在Linux下它確實很棒。 否則我會考慮Java/Swing。 – Iacopo 2010-06-14 15:56:50

+1

我鏈接到的flex文章是關於在Air界面中使用Python,通過Python的簡單的XMLRPC進行通信。睡衣文章是關於在桌面上運行類似GWT的應用程序,用Python編寫的。 我從來沒有建議你改變語言,我建議你將UI平臺從操作系統改爲瀏覽器。 – gomad 2010-06-14 16:45:44

2

The "Code once, run everywhere" quest is a bogus one,就GUI的關注。如果你不想要一個看起來&的Mac版本感覺外國和蹩腳的,你將不得不爲它開發一個單獨的GUI層。

+0

我會低估這不是一個真正的答案。作爲評論,它會得到我的投票,但不能作爲答案。編碼一次,到處跑就讓我想起Flash失敗:P – sorin 2014-03-22 14:25:50

0

也許你提供在您的評論的答案在我原來的答覆:

你有沒有考慮一個Jython/Swing的解決方案嗎?爲你的GUI和現有的Python代碼使用Java來獲得邏輯?

0

我必須說我爲此使用PyQt。我開發的是Linux,Windows和Mac OS X.即使當我開始使用Mac OS X時也很痛苦(主要是因爲我還需要scipy),現在好多了,PyQt4可以在沒有安裝的情況下安裝問題。您只需要從www.riverbankcomputing.co.uk下載檔案。

此外,另一種選擇是在應用程序中包含PyQt4,並更新sys.path以指向PyQt4的安裝位置。這就是我正在做的,以確保人們不需要安裝任何東西來使用我的應用程序。

9

嘗試Kivy,它是開源的&跨平臺。

Kivy是一個開源軟件庫,用於快速開發配備新穎用戶界面(如多點觸控應用程序)的應用程序。

+0

kivy有很多問題 – timger 2017-08-04 14:59:48

相關問題