13

ご挨拶、

GUI を含む小さなクロスプラットフォーム ユーティリティ プログラムを作成したいと考えています。どの言語/GUI ライブラリに固執する必要がありますか? それは何でも可能ですか?

これは小さなプログラムになるので、人々に JVM や .NET Framework をダウンロードさせたくありません。ネイティブで開発することは可能ですか?

更新 1。

「ネイティブに」とは、Java 仮想マシンや .NET 共通言語ランタイムのような中間層のないネイティブ コードになることを意味します。

更新 2。

無料のソリューションが望ましいです;)

4

15 に答える 15

15

C または C++ を知っている場合、私が考えることができる最初のクロスプラットフォーム GUI フレームワークは次のとおりです。

  • QT (C++、プロプライエタリだが LGPL ライセンスで無料)
  • wxWidgets (C++、最も完全で安定しているが巨大)
  • FLTK (C++)
  • フォックス(C++)
  • IUP (C、上記のものよりシンプルでクリーン)

Pascal を知っている場合は、freepascal + Lazarusを試すことができます。使ったことないですけどね。

于 2008-09-26T11:23:32.327 に答える
6

問題は次のとおりです。GUI を使用したくないが、TCL/TK、Java、QT などの永遠の API、フレームワーク、または仮想マシンを実行するためにユーザーにダウンロードを求めたくない場合は、次のようにします。かなり早く迷子になります。

その理由は、プラットフォームに依存しないようにするには、これらの API、フレームワーク、および仮想マシンが提供するすべての (GUI) 機能を再構築する必要があるからです。そして、それはやるべきことがたくさんあります... .

反対側: Java 仮想マシンは、ほぼすべてのオペレーティング システムにゼロからインストールされます。これを試してみませんか?

于 2008-09-26T11:24:25.603 に答える
5

クロスプラットフォームのプログラムをネイティブに開発したいですか? ええと...それはうまくいかないと思います.主にそのフレーズはパラドックスだからです. ネイティブ コードを作成すると、その性質上、プログラムしたプラットフォームでのみ実行されます。;-) それがフレームワークのすべてです。

したがって、プログラムが非常に小さい場合は、代わりに非常にスリムなフレームワークを使用する必要があります。itsmatt の Qt のアイデアは可能性があります。

于 2008-09-26T11:18:57.270 に答える
4

ラザロは素晴らしいです。LinuxではGTK2、Windowsではwin32 / 64、euhではWINCE、Wince。MacでもCarbonを使用しています(COCOAで動作しています)。上司への販売も簡単です(コードはDelphi互換です)

于 2009-05-01T22:36:58.290 に答える
4

Windows? ああ、今は WxWidgets と呼ばれています: http://www.wxwidgets.org/

于 2008-09-26T11:23:54.137 に答える
4

wxWidgetsにはあらゆる種類の言語へのバインディングがあります。たとえば、アプリが十分に小さい場合は python です。

于 2008-09-26T11:24:22.013 に答える
3

RealBasic を試してみてください。Visual Basic に似た構文で、Win32、OS X、および Linux を対象としています。Linux をターゲットにすることについての詳細はわかりませんが、Win32 と OS X の間で行ったクロスプラットフォーム開発にとっては夢のようなものでした。

http://www.realbasic.com

編集: ネイティブ実行可能ファイルを生成します。少額の費用がかかります - $100.

于 2008-09-26T12:42:57.370 に答える
3

私はGeorgiに同意します。Javaが進むべき道です。ちょっとした作業で、デスクトップ アプリケーションを Java アプレットとしても機能させることができます (ユーザーが積極的に何かをダウンロードする必要がまったくないように)。クロスプラットフォームの Java アプリケーションとしてスムーズに動作し、Web アプレットへの単純なポートを持つアプリケーションの例として、http://www.geogebra.orgを参照してください。

Java を使用するその他の 2 つの利点は次のとおりです。

  1. UI コンポーネント ビルダーを含む、UI を構築するための広範なライブラリがあります。
  2. Java ランタイム フレームワークは通常、ユーザーのために自動的に更新されます。

1 つの欠点:

  1. エンド ユーザーのコンピューターにインストールされている Java のバージョンは、アプリケーションと完全に互換性がない可能性があるため、最も可能性の低い分母に合わせてコーディングする必要があります。
于 2008-09-26T12:12:25.133 に答える
3

QtまたはWxを使用してPythonToExeを使用して「配布可能」にするのはどうですか

ネイティブ機能 (つまり、レジストリなど) が使用されていないことを確認するために、開発に配慮する必要があります。また、テキスト ファイルの改行などには異なるエスケープ文字が含まれるため、処理する必要があります。

于 2008-09-26T11:23:05.840 に答える
3

クロスプラットフォームと言うとき、どの OS を思い浮かべますか?

Epaga が正しく指摘しているように、ネイティブとクロスプラットフォームは相互に排他的です。複数のプラットフォームでネイティブに実行される複数のバージョンを作成するか、クロスプラットフォーム フレームワークを使用する必要があります。

クロスプラットフォーム フレームワーク アプローチの場合、追加のインストールが常に必要になります。たとえば、ここでは多くの人が Python とそのフレームワークの 1 つを使用することを提案しています。これには、最初に Python (および場合によってはフレームワーク) をインストールするように人々に指示する必要があります。

Windows と OS X を対象としている場合 (およびその OS のサポートが必要な場合は Linux のアルファ リリース コードを試す準備ができている場合) は、クロスプラットフォームの GUI アプリケーションに Adob​​e AIR を使用することを検討することを強くお勧めします。 .

于 2008-09-26T11:45:26.743 に答える
2

Qtを見たことがありますか?

于 2008-09-26T11:20:38.247 に答える
2

閃光?かなりあちこちに設置されています。

于 2008-09-26T11:59:23.870 に答える
1

David Wees と Georgi に同意します。

Java は卓越したクロスプラットフォームです。文字通り一度書いたら、どこでも実行できます。ターゲット OS やビット数ごとにコードをコンパイルする必要がなく、何に対してもリンクする心配がありません。

ご指摘のとおり、唯一のことは、JRE をインストールする必要があることですが、初心者のエンド ユーザーでもすばやく簡単に実行できます (インストーラーで [次へ] を数回クリックするだけです)。

また、Java Web Start を使用すると、デプロイがさらに簡単になります。ユーザーは Web ページの起動ボタンをクリックするだけで、アプリケーションが実行されます (JNLP 記述子で指定された内容に従って適切な JVM がインストールされている場合)。または、ユーザーは Java ダウンロード ページにリダイレクトされます。 (適切な JVM が見つからない場合)。

于 2012-01-17T23:29:12.577 に答える
1

デスクトップである必要がある場合は、Qt を使用します。今のところこれに勝るものはありません。

ただし、個人的にはデスクトップをあきらめました。私が行う UI ベースのプロジェクトは通常、ブラウザ/サーバー ベースです。一部のポートをリッスンする小さなカスタム サーバーを簡単に作成できるため、ユーザーが Apache をインストールしたり、ネットにアクセスしたりする必要なく、プログラムをローカルで実行できます。私はその目的のために作成した小さなLua、Python、およびC++フレームワークを持っています(V8でバックエンドにJavascriptを追加したい:)

于 2008-09-26T11:27:57.327 に答える
1

Qt と WxWidgets を検討する場合は、忘れずにGTK+もチェックしてください。

于 2008-09-26T11:57:02.253 に答える