4

私は盲目で、見栄えの良いGUIを作成するのに苦労しています。私は有能な開発者ですが、フロントエンドを作成できないため、自分でプロジェクトを完了することができないため、これは本当にイライラします。プロ並みのGUIを生成する自動ソリューションを知っている人はいますか?それらは派手である必要はありません。ほとんどの場合、基本的なフォーム/ウィザードスタイルのレイアウトについて話します。基本的に、ピクセルの高さ、幅、位置を指定する必要はありません。サイズや位置の関係を一致させたり、サイズを適切に変更したりする方法を理解するものが必要です。私の主なターゲットプラットフォームはWindowsです。私は以前にWxWidgetsを使用したことがあり、非常に満足していますが、長期的にやり続けることができない設計を行うために別の人を雇う必要がありました。コードを書くのに問題はありません、

何かアドバイスをいただければ幸いです。

4

2 に答える 2

2

鋭い視力、仕事への情熱、そしてすべてがうまくいくまでGUIのウィジェットをドラッグアンドドロップ、プッシュ、プルすることに多くの時間を費やす人の完璧な代替品があるとは思えません。

しかし、あなたが仕事を成し遂げる平日の解決策に満足しているなら、私はwxWidgetsサイザーが合理的な仕事をしていると思います。あなたはこれらに精通していますか?ウィジェットの周囲に残すスペースの量と、ウィジェットを垂直または水平に配置するかどうかを指定します。今、あなたがしなければならないのは、サイザーにウィジェットを追加することだけです。そして、サイザーは、しばしばかなりまともな最初のパスのような方法でそれらを自動的に配置します。

簡単な例として、ここに簡単なフォームがあります。

コード:

wxPanel * panel = new wxPanel(this,-1,wxPoint(-1,-1),wxSize(1000,1000));

wxSizerFlags szrflags(0);
szrflags.Border(wxALL,5);

wxBoxSizer * szrCRUDForm = new wxBoxSizer(wxVERTICAL );

wxFlexGridSizer * szr = new wxFlexGridSizer(2,1,1);

wxStaticText * field1text =  new wxStaticText(panel,-1,"Entry Field #1");
wxTextCtrl   * field1ctrl =  new wxTextCtrl(panel,-1,"              ");
wxStaticText * field2text =  new wxStaticText(panel,-1,"Second Entry Field");
wxTextCtrl   * field2ctrl =  new wxTextCtrl(panel,-1,"              ");
wxStaticText * field3text =  new wxStaticText(panel,-1,
    "A very big entry field\n"
    "with a lot of description\n"
    "Spread over several long lines of text");
wxTextCtrl   * field3ctrl =  new wxTextCtrl(panel,-1,"",wxPoint(-1,-1),wxSize(600,-1));
wxStaticText * field4text =  new wxStaticText(panel,-1,"Yet another Field");
wxTextCtrl   * field4ctrl =  new wxTextCtrl(panel,-1,"              ");

szr->Add( field1text,szrflags );
szr->Add( field1ctrl,szrflags );
szr->Add( field2text,szrflags );
szr->Add( field2ctrl,szrflags );
szr->Add( field3text,szrflags );
szr->Add( field3ctrl,szrflags );
szr->Add( field4text,szrflags );
szr->Add( field4ctrl,szrflags );

wxBoxSizer * szrButtons = new wxBoxSizer( wxHORIZONTAL );
szrButtons->Add( new wxButton(panel,-1,L"CREATE"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"READ"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"UPDATE"),szrflags);
szrButtons->Add( new wxButton(panel,-1,L"DELETE"),szrflags);

szrCRUDForm->Add( szr );
szrCRUDForm->Add( szrButtons );

SetSizer(szrCRUDForm);

押したり引いたりすることなく、次のGUIを生成します

ここに画像の説明を入力してください

これは、入門的な、かなり大雑把なチュートリアルですhttp://neume.sourceforge.net/sizerdemo/

これはもっと洗練されたものですhttp://zetcode.com/tutorials/wxwidgetstutorial/layoutmanagement/

于 2012-10-31T18:39:21.503 に答える
0

盲目とは何を意味するのか(文字通りか比喩的か)わかりませんが、後者を想定します。想像力に代わるものはありません。あなたの想像力は、常にあなたが達成したいものです。頭に入れたら、紙にスケッチするか、スケンシルのようなものを使用できます。

次に、wxWidgets を使用して GUI を構築するためのツールを使用できます。オプションはほとんどなく、その一部を以下に示します。クロス プラットフォームが必要な場合は wxFormbuilder または wxSmith を、ウィンドウのみが必要な場合は wxDevC++ をお勧めします。多少の費用を支払うことができる場合は、wxWidgets コア開発者の 1 人が所有する DialogBlocks のサポートを検討してください。wxCrafter は有望に見えますが、まだベータ段階です。

Vadim Zeitlin のような素晴らしい会社を持っている人を雇いたい場合は、別のコア開発者をサポートすることを検討してください。

  1. wxFormBuilder
  2. ダイアログブロック
  3. wxDevC++ デザイナー
  4. Code::Block の wxSmith
  5. XRCed デザイナー
  6. wxDesigner
  7. wxグレード
  8. wxCrafter (ベータ段階)
于 2012-10-31T17:32:38.183 に答える