8

Python には多くの GUI ライブラリがあります: tkinter、wxWidgets、pyGTK など。しかし、これらの GUI はすべてインストールする必要があり、非常に重いため、前述の GUI ライブラリをリレーするエンドユーザー GUI Python アプリをデプロイするのは少し複雑です。

ctypes最近、pythonの組み込みモジュールについて考えています。ctypes理論的には、Windows (など) で使用する純粋な python GUI ライブラリ、windll.user32.CreateWindowExMacOS でネイティブ pyObjC、gnome / kde で pyGTK / pyQt を作成することが可能です。そのようなライブラリは存在しますか?そうでない場合、この考えのどこが間違っていると思いますか?

4

9 に答える 9

11

Python 2.7 と 3.1 から、Tk の見た目はずっと良くなります。

http://docs.python.org/dev/whatsnew/2.7.html#ttk-themed-widgets-for-tk

「Tcl/Tk 8.5 には、基本的な Tk ウィジェットを再実装するテーマ付きウィジェットのセットが含まれていますが、よりカスタマイズ可能な外観を備えているため、ネイティブ プラットフォームのウィジェットによりよく似ています。このウィジェット セットは、もともと Tile と呼ばれていましたが、Ttk に名前が変更されました ( "themed Tk") が Tcl/Tck リリース 8.5 に追加されました。"

于 2009-06-24T13:48:15.933 に答える
10

最小限の労力で最良の結果を得るには、既存の GUI ライブラリを使用してアプリをデプロイするために必要なことを学ぶことです。

于 2009-06-24T11:14:16.663 に答える
8

Tkinter は Python 標準ディストリビューションの一部であり、デフォルトでインストールされます。最初にグラフィカルな表示があるすべての python インストールでこれを見つけることを期待してください。

于 2009-06-24T11:45:45.697 に答える
6

「純粋な python gui ライブラリ」という概念は間違っています。最終的にはシステム レベルの呼び出しとウィジェットを使用することになり、ctypes を使用することになるかもしれませんが、アイデアの実装を開始すると最終的には wxPython になるという事実は変わりません。

于 2009-06-24T13:15:55.733 に答える
5

主に間違っているのは、GTK、Tk、Wx、QT およびそれらの同類のメーカーによって既に行われている車輪を再発明していることです。純粋な python GUI は技術的に実現可能であり、 anyguiなどのプロジェクトが同様のことを試みましたが、これを行うことで得られるものは比較的少ないです。

ネイティブ ツールキットは、基盤となるプラットフォーム (ネイティブ ダイアログなど) 間の違いをカバーするという点でも優れています。これは、ツールキットを使用すると、プラットフォーム固有のコードがほとんど必要ない移植可能なアプリケーションを作成できることを意味します。このほとんどは、基礎となるツールキットによって抽象化されています。

Windows の py2exe などの配布メカニズムや任意の Linux メソッドを使用すると、アプリケーションに DLL をバンドルできるため、必要なネイティブ コンポーネントを適切な場所にドロップするインストーラーを作成できます。ただし、これを行う一般的なクロスプラットフォームの方法は実際には存在しないため、プラットフォームごとに個別のインストーラーを維持する必要があります。

于 2009-06-24T13:24:50.537 に答える
4

1 つには、これらのライブラリはすべて異なる抽象化を使用しているため、それらすべてで機能するものはすべて、最小公倍数の機能セットをサポートする、それぞれを最大限に活用するために多くの作業を行う可能性があります。

于 2009-06-24T11:18:35.033 に答える
4

「重量級」の意味がよくわかりません。

wx は各プラットフォームでネイティブ コントロールを使用し、Python での使用は私が想像できる限り簡単です。結局のところ、GUI は複雑になる可能性があるため、GUI API は複雑です。

ウィンドウを作成するのに必要な労力と、画面に表示されるものの品質について、wx は素晴らしいと思います。自分でもっと良いものを転がす可能性は低いと思います。

于 2009-06-24T11:36:05.030 に答える
2

車輪を発明しないことだと思います。それはうまくいくでしょうが、なぜそれをしなければならないのですか?あなたが言及したすべてのGUIライブラリは安定しており、多かれ少なかれ防弾されています。

純粋な python ライブラリを実装する実験がいくつかあると想像できます。しかし、私は一度も見たことがありません。GUI に関するすべては大変な作業であり、純粋な Python ライブラリにはそれほど多くの聴衆はいません。

于 2009-06-24T11:08:56.457 に答える