windows – 自动生成guis?

我是盲人,我很难做出漂亮的guis.这真让我感到沮丧,因为虽然我是一名有能力的开发人员,但我无法自己完成项目,因为我无法制作前端.我想知道你们中是否有人知道一些能产生专业外观的自动解决方案吗?它们不一定要花哨,大多数时候我们都在讨论基本形式/ wizzard样式布局.我基本上需要远离指定像素高度,宽度和位置.我需要一些东西来弄清楚如何使尺寸和位置相互匹配,调整大小等等.我的主要目标平台是
Windows.我以前和WxWidgets一起工作并且非常满意,但是我需要聘请另一个人去做我不能长期做的设计.我编写代码没有问题,我只是无法有效地弄清楚如何定位和设置窗体上控件的大小.

任何意见,将不胜感激.

最佳答案 我怀疑对于有敏锐视力,对工作的热情以及投入拖拽,推动和拉动GUI的小部件直到一切都如此的人来说,有可能完美替代.

但是,如果您对完成工作的工作日解决方案感到满意,那么我认为wxWidgets sizer做了一个合理的工作.你熟悉这些吗?指定要在窗口小部件周围留出多少空间,以及是否要将它们垂直或水平排列.现在你所要做的就是为sizer添加你的小部件,并且sizer会自动将它们排列成一个相当不错的第一遍.

举个简单的例子,这是一个简单的表格.

代码:

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/

点赞