JavaFXのようなcppで古典的なGUIを作成する方法はありますか?フローティングボタン、テーブル、グラフなどの要素を作成したいと思います。私はqtのようなツールを知っていますが、私はそれで大丈夫ではありません。私はwin32 APIを試しましたが、それはWindowsのみです。古典的なGUIをC++で作成するには
1
A
答えて
5
GUIライブラリは一般に「ウィジェットツールキット」と呼ばれ、さまざまなクロスプラットフォームGUIウィジェットツールキットが用意されていますが、異なるオペレーティングシステム環境ではUIパラダイムが異なるため、たとえば、macOSとUbuntuのメニューバーは常に上にありますが、Windowsや他のLinuxデスクトップではそうではありません。
だから、あなたが作るには、2つの基本的な選択肢があります。
- は、単一のクロスプラットフォームのGUIツールキットを使用してください - 一般的に、単一のGUIプロジェクトを作成することを意味するが、コントロールと機能のツールキットの選択にあなたを制限し、あなたのツールキットがネイティブウィジェット(Java、WPF、Qtなど)を使用していないか、プラットフォームのネイティブパラダイムを使用できないために、ユーザーに比較的貧弱なユーザーエクスペリエンスを与えます。
- プラットフォームごとに新しいネイティブGUIを作成します。これはより多くの作業を意味しますが、ユーザーエクスペリエンスは向上します。クロスプラットフォームのGUIツールキットについて
、主なオプションは、次のとおり
- Qtの
- GTK +
- wxWidgetsの
3との間の比較のために、このQAを参照してください。 Which, if any, achieves Windows native look: GTK+, wxWidgets, Qt, FLTK?
(TL; DR:WxWidgetsはnaを使用します開発は難しいが、 Qtは、各APIを理解する必要があるでしょう、あなたがターゲットにする必要がある各プラットフォームのネイティブUIのための最高の開発者の経験を提供していますが、あなたが知っておく必要があり、他の多くの弾丸のポイントを持っている)
:
- のWin32:
- MFC(APIは、現代の基準では醜いですが、そのようなコモンコントロールなどのメインのWin32 UIパラダイムとAPIを、カプセル化しないただし、末日サポートする上り坂の戦いのために準備されます。高DPI、双方向テキスト、高品質な2DレンダリングなどのUI機能GDI/GDI +が途中で出ています。つまり、Dir ect2D - MFCがGDIを想定しているので楽しい)アプリケーションがサンドボックス化できる(Windows 10のみで実行できる)場合は、UWP/XAML(すべてネイティブなのでCLR関与していない)。
- WPF:.NET Frameworkに依存し、UIコードをC#で作成するアプリケーションに慣れている場合、WPFを使用すると、高品質のユーザーインターフェイスを簡単に作成できます。ただし、 WPFのアプリケーションはWindows 10でうんざりしていて(つまり醜いです)、WPFのデフォルトコントロールセットは非常に不思議ですが、手段(つまり時間、お金、人)があれば、大きな成果を得ることができます。 WPF用のXAMLは一般にUWPに移植可能です。
- macOS:Cocoaでこれを行うのは難しいことです。macOSをターゲットにしている場合は、Swift(またはObjective-C)にUIレイヤーを作成し、C++ブリッジを使用して残りのアプリケーションコードにリンクすることを強くお勧めします。
- Linux:Linuxは単なるカーネルなので、ネイティブウィジェットのセットはユーザのデスクトップ環境に依存しますが、ほとんどのデスクトッププログラムはGTKを使用しているようです。 GTKを使うつもりならば、GTKのクロスプラットフォーム機能を使ってWindowsとmacOSをサポートすることもできます。
結論としては、それは困難で多くの作業です。 :)なぜ、今日(2017年中頃)多くのソフトウェアタイトルが、電子(例えば、スラック、VSコード、アトム)を使用してウェブ上に直接(例えばFacebook、StackOverflow、SalesForce) (PhoneGapアプリ、Spotifyなど)のホストされたウェブビュー。
関連する問題
- 1. ユニバーサルアプリ:古典的なツールキットを作成するだけです
- 2. F#:古典的なスワップ関数を書くには? C#では、古典的なスワップ機能は
- 3. 古典的なスタックオーバーフロー?
- 4. 古典的なASPからXML文字列を作成
- 5. 古典的なASPログアウトプロセス
- 6. System.Net.HttpWebRequestの古典的なASP?
- 7. 古典的なASPのヒンジテーブル
- 8. シングルトンと古典的なコンストラクタ
- 9. 古典的なaspのcint
- 10. 古典的なASPとWIF
- 11. 古典的なASPエラー405
- 12. IIS7でwwwにリダイレクト - 古典的なパイプラインモード
- 13. 古典的なaspはWebサーバー上にテキストファイルを作成します:エラー800a0034 Bad_file_name_or_number
- 14. AzureのMLは、モデル(古典的なウェブサービス)
- 15. POSTで古典的なaspクロスドメインHTTPリクエスト
- 16. 古典的なaspでのWebスクレイピング
- 17. 古典的なASPからどこに?
- 18. クリップボードにコピー古典的なasp
- 19. 古典的なASPフォームハンドラにJSONフォームデータを投稿するには
- 20. ASPの古典的なJavaScriptでのCコードの使用方法
- 21. ブートストラップの古典的なモバイルメニューを変更するには?
- 22. 古典的なASPの完全なイメージマニピュレーションソリューション
- 23. 古典的なASP - 500エラーをキャッチ
- 24. 古典的なASPでは、ENDサブまたは関数を作成することは可能ですか?
- 25. 古典的なロードバランサのセキュリティグループにアクセスする方法は?
- 26. 古典的なMacエイリアスレコードからブックマークファイルを生成
- 27. xmlhttpから古典的なaspでXML値にアクセスする
- 28. 古典的なASPでJSONデータにアクセスする方法
- 29. 古典的なレポートと派生列
私は古典的なGUIフレームワークであるJavaFXに同意しません。 JavaFXまたはスイングまたはWPF for C#は、GUI用の高度なフレームワークです。 java.awtは古典的なGUIに似ており、この領域には多くのC++ GUIライブラリがあります。 JavaFXに最も近いのはQT afaikです。[アニメーションスクリプトとそのすべて](https://www.youtube.com/watch?v=VAhLnJc5iEY)です。 – zahir