鋭い視力、仕事への情熱、そしてすべてがうまくいくまで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/