PythonはUIの開発に適していますか?もしそうなら、wxPythonまたはTkinter?


12

Pythonを使用したデスクトップアプリケーションの開発を楽しみにしています。私は初心者であり、Pythonに関する十分な専門知識がありません。私もJavaプログラマーです。Swingを使用してUIを作成した経験はありますが、Swingで開発されたアプリは非常に遅いことがわかります。これが、ブラウザ/ゲームのようにC / C ++で主要な実装の多くが行われる理由の1つかもしれません。

C ++でUIを開発する方が良いかもしれませんが、C / C ++よりも高レベルのプログラミング言語を選択することを好みます。そこで、Python自体はネイティブにC / C ++で構築されているため、Java Swingよりも優れたパフォーマンスを発揮すると想定してPythonを選択しました。

だから、UIを開発するためにPythonがJava Swingよりも優れているというこの仮定を進めることができますか?または、UIを開発するためにPythonよりも優れた言語を提案しますか?Pythonを使用する場合、TkinterまたはwxPythonを使用すべきツールキットとその理由は何ですか?


4
あなたの仮定には欠陥があるようです。PythonはC / C ++上に構築されていますが、JVMも同様です(ほとんどの場合)。
user281377

なぜTkinterとwxPythonに限定するのですか?
アント

2
私は自分自身を制限しようとはしていません。これらはGUI開発用の2つのよく知られたツールキットであるという印象を受けました。
Vamsi Emani

Lazarus IDE、Free Pascalコンパイラ、およびObject Pascalは、GUIを開発するための非常に高速で簡単な方法を提供します。
systemovich

回答:


15

Pythonを使用して、Windowsデスクトップアプリの開発を開始しました。PyQtを使用しています。

インストールとセットアップは非常に簡単です。ここのチュートリアル:http : //zetcode.com/tutorials/pyqt4/firstprograms/は、どれだけ簡単かを示しています。コードを示します。

#!/usr/bin/python

# simple.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())

これでウィンドウが開きます。

Pythonを学びたいので、雇用主が時間を与えてくれるので、C#/ WPFよりもPython / PyQtを選択しました。

私のマネージャーは、他のフレームワークよりもPyQtを勧めました。彼の経験では使いやすいからです。



私は以前にPySideを使用したことがありますが、かなりうまく機能します。ただし、ノキアがQtを売却したため、PySideの今後の開発は少し困難です。
11

5

WindowsまたはOSXのネイティブGUIを開発する場合は、Txinter(つまり、Pythonの服を着たGUIライブラリTk)を使用することをお勧めします。 。定量化するのは簡単ではありませんが、私の目にはWindowsとOSXのスクリーンショットです。YMMV。Tk(重要: Ttkウィジェットセットを使用)は非常にネイティブに見えることを知っています。

Linux向けに開発している場合…現在の好まれるプラットフォームの外観がどこにあるのかわからなくなってしまったので、私は本当に正直にアドバイスすることはできません。:-)


1
Tkinterはすぐに使用できる多くの一般的に使用されるウィジェットを提供しないことに注意してください。たとえば、プログレスバーが必要な場合は、自分で作成するか、他の誰かが作成したものを見つける必要があります。
ジェームズ

1
ただし、wxWidgetsはネイティブGUI要素を使用します。少なくとも、C ++バインディングはそうです。Pythonについてはよくわかりません。
Zhehao真央

@ZhehaoMao wxWidgetsは、ネイティブ要素と非ネイティブ要素が混在しています。一部の要素はネイティブのものと似ていますが、実際にはより均一なAPI用にカスタム構築されています。
ヒューバート・グジェスコヴィアック

3

Pythonを既に知っていて気に入っているなら、それは良い選択だと思います。それ以外の場合は、既知の言語であるJavaを使用します。ここでの1つの例外は、これが学習プロジェクトである場合です。この場合、他の言語の経験を積むことをお勧めします。

ここでの私のポイントは、UIアプリケーションの場合、PythonがJavaよりも優れていることも悪いこともないということです。


1

このようなすべての質問に対する唯一の本当のアドバイスは、「試してみて、気に入ったかどうかを確認する」ことです-プログラミング言語に関する他の人々の意見(特に、最も愛されている言語または最も嫌われている言語に関する意見)はめったに価値がありません。

しかし、私の5セントの価値-素早くシンプルなWindows GUIをノックアップするには、PythonとwxWidgetsの組み合わせが非常にうまく機能します。しかし、私が言ったように、自分で試してみてください-Pythonの経験があまりなくても、1時間程度で簡単で便利なものをまとめることができます(確かに多くはありません)。


1

誰かが検索エンジンを介してここにたどり着く場合:PAGEジェネレーターを使用して、いくつかのTkinterサンプルをすばやく生成できます。それはあなたが行きたい場所に到達するために何が必要なのかのアイデアをあなたに与えるいくつかのまともなコードを生成します。著者が述べているように、一般性を黙認する必要がありますが、水域をテストしたり、どこに行くのかについての一般的なアイデアを得たい人にとっては良いツールです。 SourceForgeのページ


-1

特定の種類のアプリケーションは、Pythonで書くのにかなり管理しやすいと思います。

たとえば、Task CoachはPython / wxPythonで書かれています。py2app、py2exeなどのPython2exeコンパイラを使用して、クロスプラットフォームのネイティブに見える実行可能ファイルを作成します。


-1

Windowsエコシステムでの開発に制限されており、Visual Studioを使用する場合は、Iron Pythonを検討してください。Iron PythonはPythonと.NETオブジェクトです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.