9

デジタル ハードウェア設計用の実験的な IDE を作成することを考えています。だから私は魔女のプラットフォームを選ぶことを決めることができません.

構文の強調表示、いくつかのベクター グラフィックス、および多数のタブ付きウィンドウを備えたテキスト エディターを使用する予定です。

私の目標: 1. できる限り少ないカスタム コンポーネントを使用して GUI を作成する。2. 可能な限りクロスプラットフォームにする

(CPython と Jython がクロスプラットフォーム対応であることは既に知っていますが、IronPython+Mono はどうでしょうか?)

では、質問は GUI に関するものです。何を選択すればよいでしょうか。

4

8 に答える 8

9

Mono を使用した IronPythonはクロス プラットフォームです。Mono でサポートされているすべてのプラットフォームと、Mono でサポートされている機能セットに対応しています (これは、Windows フォームがかなり適切にサポートされていることを意味します)。GUI ツールキットの他のオプションが利用可能ですが、より優れた「クロス プラットフォーム」機能を提供するか、少なくとも Windows 以外のプラットフォームでの操作性が向上する可能性があります。

CPython は、選択した GUI スイートによって異なります。個人的には、PyQtを使用した CPython が、Python の最も使いやすいクロスプラットフォーム GUI オプションであることがわかりました。非常に強力で、機能が豊富で、非常にうまく機能します。

Jython も動作しますが、個人的には GUI オプションはあまり好きではありません (ただし、これは 100% 個人的な好みです)。

于 2010-07-26T18:22:23.513 に答える
5

クロスプラットフォームが目標なら、IronPython は忘れてください。多くの人は、それが引き起こす依存関係の地獄を嫌っているので、一部の OS/ディストリビューションで実行するには、あまりにも多くの作業が必要になります。程度は低いものの、Jython もこれに悩まされます。

于 2010-07-26T18:22:39.910 に答える
5

まあ、Mono はほとんどの Linux ディストリビューションのベースには付属していません。これもそれほど軽い依存関係ではありません。Java は、人々がすでに持っている可能性がかなり高いと思います。Mono で「Winforms」を使用する予定はありますか? そうで、Winforms の経験がない場合は、他の人の意見を読んでください :-) もう 1 つの .NET GUI ツールキットは WPF ですが、残念ながら Mono には実装する予定がありません。

ネイティブウィジェットをレンダリングし、多くのレイアウトの可能性を簡単に提供する SWT を使用できるため、Jython も優れています。または、Jython を Swing で使用することもできますし、それ以外のものを使用することもできます。

OSX、Windows、および Linux で見栄えの良いネイティブ ウィジェットをレンダリングするため、wxPython (ほとんどのディストリビューションにデフォルトで含まれている CPython で使用できます) が本当に気に入っています (私は Gnome ウィジェットを実際に見ただけです)。wxPython は、私が使用した GUI ツールキットの中で最も使いやすいツールです。私はまた、私が非常に素晴らしいと思ったSWT、個人的に見た目があまり好きではないSwing、および単純なレイアウトを行うのに悪夢だったWinformsも使用しました。

インタープリター/言語ランタイムの存在を OS ごとに簡単に比較すると、次のようになります。

  • CPython
    • Windows - おそらくインストールされていないため、Python 以外のインストーラーでソフトウェアと一緒にインストールする必要があります :-P
    • Linux - おそらくインストール済み (Ubuntu、Gentoo、および RedHat にはすべて、Python で記述され、CPython で実行されるシステム ツールがあります)
    • Mac - OSX にプリインストール
  • ジソン
    • Windows - 付属していませんが、おそらく私の経験のある時点でインストールされています
    • Linux - おそらくインストールされていますが、さらに重要なのは、Mono のように依存していることを嫌う人がいないことです。
    • Mac - OSX にプリインストール (「Mac OS X Leopard には、JDK 1.5.0_13_b05 に基づく J2SE 5.0 がプリインストールされています」 -- Apple のサイト)
  • アイアンパイソン
    • Windows - 最新バージョンの Windows を使用している場合、ほとんどの人は少なくとも .NET 2.0 を使用しているので、おそらく問題なく動作します。
    • Linux - おそらくインストールされていません。私が Linux で Mono を使用した唯一のアプリケーションは Rasterbator でした。
    • Mac - 上記参照

GUI ツールキットを最初に選択します。これは、ユーザー エクスペリエンスと全体的な難易度に大きな影響を与えるためです (私は wxPython を選択しますが、SWT は僅差で 2 番目に近いでしょう)。

于 2010-07-26T18:32:04.063 に答える
3

私はほぼ1年前にこの同じ質問に直面しました。すべての代替案を検討した後、最終的に CPython と PyQt に行き着きました。IMO、Qt/PyQt は、すべての Python GUI ツールキットの中で断然最良の選択です。wxPython で多くのバグに遭遇した後、私は PyQt に切り替え、二度と振り返りませんでした。私の経験では、Qt/PyQt は wx ツールキットよりもはるかに堅牢です。

私はまったく同じコード ベースを使用し、 Windows 用のPyInstallerと Mac 用のPy2Appでスタンドアロンの実行可能ファイルをビルドします(PyInstaller は Linux でも使用できます)。これらのビルダーには Python インタープリターとすべての依存関係が組み込まれているため、面倒な作業が大幅に軽減されます。唯一の難点は、ビルドを行うには Windows と Mac の両方が必要になることです。すべての構成を正しく設定するのも面倒ですが、それは可能であり、投資する価値があります。

于 2010-07-26T18:34:13.737 に答える
2

Java最も移植性の高いプラットフォームです。Jython は 100% 純粋な Java で書かれています。'言っ途切れる。

ところで、私は CPython/GTK プロジェクトを Jython に切り替えました (できるだけ多くのアンマネージ コードを削除しようとしています)。唯一の問題は、Jython がまだ 2.5 であることです。 )

于 2010-07-27T06:51:46.683 に答える
2

python/jython/ironpython で書かれた同等の GUI を見てみましょう。好きなプログラムを探して、それらが何を使用しているかを調べてください。すべてではないにしても、ほとんどが cpython + gtk または cpython + qt で記述されると思います。Python のすべての GUI ツールキットはクロスプラットフォームだと思います。

于 2010-07-26T18:25:33.787 に答える
1

Python 2.7または3.1(CPython)をttk(2.7、3.1のStandart Library内)、ttkサポートテーマ(見栄えがよく、非常に単純なコーディング)で使用できます。

(最初の画面は、タブと構文の強調表示を備えたテキストエディタです) ttkスクリーンショット

于 2010-07-26T19:59:47.803 に答える
1

すでに多くの答えがありますが、重要なことを 1 つ追加したいと思います。どのライブラリを学んでも、別のライブラリに移動してもほとんどの原則は同じです。

Qtについては知りませんが、ほとんどのグラフィックプログラム(PyGTKまたはTkinter)では、編集に関する限り、PIL画像(または同様のもの)を使用して描画し、その画像を描画するのが最善の方法です.そうしないと、ウィンドウが覆われた場合にピクセル データが失われる可能性があります。

于 2010-07-26T18:33:20.967 に答える