2016-07-28 5 views
-1

私はC++でウィンドウを基本的に作成したいと考えています。それは構造体のようなコントロールパネルを持っていて、ボタンをトグルするオプションが必要です。ボタンのイメージは、オンとオフのビットマップからのものでなければなりません。GUIを使ってC++でフレーム/ウィンドウを作成する方法は?

enter image description here

これは、コントロールパネルのように、そのような個々の制御ボタンの配列を有していなければなりません。私はON/OFFを切り替えることができるはずです。しかし、私はこの小さなアプリケーションをC++で構築しなければなりません。親切に私をスタートさせ、進めるように案内しますか?その後、

  • Qtの
  • GTK +
  • wxWidgetsの

し、あなたの必要性とpreferenciesに応じて選択します。

+2

wxWidgetsのQtのようなライブラリを見ましたか? – thorsan

+0

特定のオペレーティングシステムはありますか?どのフレームワークが優先されますか?ネイティブまたはブラウザベース? –

+0

@BoPersson勝利7、私は第三者のフレームワークを使用しないことをお勧めします。これは、ネイティブのWindowsアプリケーションです –

答えて

0

あなたはこれらの表情を持っている必要があります。

EDIT:

は、Windows上にある場合、あなたはWinAPIのを使用することができます。しかし、あなたは他のOS間であなたのコードの移植性を失ってしまいます。

-1

残念ながら、C++のGUIはあまり簡単ではありません。

これを達成するには、ある時点でOSとやりとりする必要があります。つまり、何らかのライブラリを使用する必要があります。

(あなたのコメントに記載されているように)より適切な質問に答えるには、ターゲットとしているOSの種類を特定する必要があります。通常の3は以下のとおりです。

  • Windowsのあなたがが与えられたものな情報で
  • マック
  • Linuxの

:私は似たSFML Libraryか何かを使用することをお勧めします 。利用可能なチュートリアルがあり、それはプラットフォーム間でかなりうまく機能します。ウィンドウを開くには、次のようにクラスをインスタンス化するだけです。

sf::Window window(sf::VideoMode(800, 600), "My window"); 

描画ボタンは少し硬いです。 多くの図書館では独自のソリューションを提供していますので、具体的な例は避けておきます。以下は擬似コードだけです。一般的には しかし、あなたがたときにユーザーがクリック画面上でのマウス/ポインタ位置(x、y)を取得し、その後、キャプチャし、ボタンの長方形の各コーナーの境界に対してそれをチェックしたい:

if (ButtonPressed()) 
{ 
    int currentX = GetMousePositionX(); 
    int currentY = GetMousePositionY(); 

    if (currentX > button.Left() && 
     currentX < button.Right() && 
     currentY > button.Top() && 
     currentY < button.Bottom()) 
    { 
     // The button is pressed 
    } 
} 

上記のコード例は、MousePositionがウィンドウの左上に0、0で始まると仮定しています。そのため、使用しているライブラリがどのように実装されているかを確認する必要があります。

また、上記のGUIを完全に考慮する必要があるかもしれません(これはほんの小規模なプロジェクトであれば、C++のGUIは驚くほど難しいかもしれません)。

関連する問題