首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动生成guis?

自动生成guis?
EN

Stack Overflow用户
提问于 2012-10-31 22:47:27
回答 2查看 505关注 0票数 4

我是盲人,我很难做出好看的图形用户界面。这真的让我很沮丧,因为虽然我是一个有能力的开发人员,但我不能自己完成项目,因为我不能制作前端。我想知道你们中是否有人知道一些自动解决方案,可以产生专业外观的guis?他们不需要花哨,大多数时候我们谈论的是基本表单/wizzard风格的布局。我基本上不需要指定像素的高度、宽度和位置。我需要一些东西,弄清楚如何让东西在大小和位置方面相互匹配,很好地调整大小,等等。我的主要目标平台是Windows。我以前和WxWidgets合作过,非常满意,但我需要雇佣另一个人来做设计,这是我不能长期做的。我写代码没有问题,我只是不能有效地弄清楚如何在窗体上定位和设置控件的大小。

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 02:39:22

我怀疑有没有一个完美的替代人敏锐的视力,对工作的热情和大量的时间投入到拖放,推动和拉动图形用户界面的小部件,直到一切都是如此。

但是,如果您对能够完成工作的日常解决方案感到满意,那么我认为wxWidgets sizers的工作是合理的。你熟悉这些吗?指定要在小部件周围留出多少空间,以及是垂直还是水平排列。现在你要做的就是将你的小部件添加到sizer中,sizer会自动以一种通常相当不错的第一遍的方式排列它们。

作为一个简单的例子,下面是一个简单的表单。

代码:

代码语言:javascript
复制
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/

票数 2
EN

Stack Overflow用户

发布于 2012-11-01 01:32:38

我不确定你所说的盲目(字面上的或比喻的)是什么意思,但我会假设后者。想象力是不可替代的。你的想象力永远是你想要实现的。一旦你想好了,你就可以在纸上画出来,或者用skencil之类的东西画出来。

然后,您可以使用通过wxWidgets构建图形用户界面的工具。有几个选项,其中一些如下所示。如果你想跨平台,我建议你使用wxFormbuilder或wxSmith;如果你想单独使用windows,我建议你使用wxDevC++。如果你能捐出几块钱,那么考虑一下wxWidgets核心开发者所拥有的DialogBlocks的支持。wxCrafter看起来很有前途,但仍处于测试阶段。

如果你想雇佣一个Vadim Zeitlin拥有这样a nice company的人,考虑支持另一个核心开发者。

  1. wxFormBuilder
  2. DialogBlocks
  3. wxDevC++ Designer
  4. Code::Block's wxSmith
  5. XRCed Designer
  6. wxDesigner
  7. wxGlade
  8. wxCrafter (测试版)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13160605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档