启动wxWidgets C ++需要轻轻一点

时间:2010-01-21 00:56:58

标签: c# c++ wxwidgets

所以我一直在学习C#一年(我已经20岁了),我对此非常有信心。我也一直在干扰C ++。例如,最近我一直在关注C ++的Nehe OpenGL tutorials,我觉得这是一种有趣的学习方式。

在我偶然发现这个名为FLTK的图书馆之后,我想开始研究创建跨平台的GUI软件。经过最后的努力让它发挥作用后,我发现在C ++中有创建GUI的解决方案令人耳目一新,但我认为FLTK看起来很古老。

所以我搜索了一些较新的GUI框架并决定开始使用wxWidgets(由于授权而决定反对Qt)。 我下载了它,编译了它,并查看是否有任何用于RAD开发的IDE插件,因为你可以想象从C#拖放组件到一个表单我希望有类似的东西。

我了解到code::blocks有类似的东西所以我试过了。没关系,但让我失望的是可怕的代码完成;它只显示当前对象中的成员和方法,而不显示#included头文件。我知道代码完成/ IntelliSense对于C ++来说并不容易,但Visual Studio 2008处理它非常好。我确实找到了一些像wxFormBuilder这样的其他RAD工具,但它花了钱,而不是我想做的简单学习。

所以我的TLDR问题是,是否有人有wxWidgets的经验?您是否只是在您熟悉的IDE中开发并只编写GUI?意思是没有视觉助手?也许你可以给我一个推动我应该去的方向:)

谢谢,这也是我在这个网站上的第一篇文章,虽然我之前读了很多帖子,帮助我解决了很多问题。干杯!

7 个答案:

答案 0 :(得分:9)

我的建议是学习如何在代码中使用wxWidgets进行GUI布局,然后当你熟悉它时学习如何使用GUI工具。

手动做这种工作一段时间可以让你了解你需要什么(“好吧,我需要一个wxSizer,垂直,将这两个水平wxSizers放入,我把每个wxStaticText和wxTextCtl放在一起line ...“)...我认为,如果你开始使用GUI工具,你只会感到恼火,因为(上次我看过)没有一个是Drag-Drop编辑器,就像你得到.NET一样

答案 1 :(得分:2)

绝对给Code::Blocks另一次尝试。使用wxWidgets是一个非常好的环境。它带有一个表单设计器和wxWidgets项目的模板,所以我无法想象没有它的工作。

另外,对于初学者对wxWidgets的介绍,请尝试this页面。当我开始使用它时,它帮了我很多。

答案 2 :(得分:0)

有wxGlade和wxFormBuilder

我不知道是否还有另一个,但我知道的wxFormBuilder是免费的开源。

您可以在主页上找到指向其他工具的链接 of wxGlade(http:// wxglade.sourceforge.net /)。

这些程序中的大多数都能够输出xrc文件,这些文件是GUI的XML表示形式。它解决了生成代码的复杂性问题,但功能不强。

但是我个人并不使用这些工具中的任何一种,除非有时在我做之前看看它会是什么样子但是从不实际生成代码。

答案 3 :(得分:0)

我在不使用拖放设计器的情况下使用wxWidgets。这种方法有明显的缺点,但优点是你没有任何可怕的自动生成代码来处理。在过去,我发现在我的项目中间有这样的代码引起了各种类型的悲伤 - 特别是如果你认为它需要一些严重的改变,通常需要从头开始,因为表单设计师在写作方面要好得多“而非”编辑“。

对于简单的应用程序,您可以使用自定义和标准小部件的混合组装UI,而不会有太多困难。查看使用该方法的wxWidgets示例和演示。我的国际象棋应用程序(参见我的网站)也使用这种方法。

可以通过在更高抽象级别编写特殊内容来实现更精细的UI。我正在考虑的事情是一个子系统,接受高级灵活的请求,以提供不同类型的用户界面功能,然后分类控件的细节,以创建和控制这些控件本身等。这是我的技术幻想,但我还没有真正尝试过。实际上,我所提到的演示已经可以使用这种相当原始的设施;它被称为“Sizer”(类wxSizer),基本上是一个控件容器。

最后我要指出,自从诺基亚收购奇趣科技并使其“更加”免费(LGPL许可证)以来,Qt许可证的问题已基本消失。许多人认为Qt是现在的发展方式。我对wxWidgets非常满意,但有一天肯定会认真评估Qyt。祝你的项目好运。

答案 4 :(得分:0)

  

wxFormBuilder但它要花钱

wxFormBuilder是免费和开源的

Visual Studio最适合wxWidgets中的C ++编码,但是由于Visual Studio处理很多事情的方式,你会在Linux上遇到很多问题,比如文件名你需要特别注意区分大小写。< / p>

关于GUI,将wxFormBuilder添加到Visual Studio解决方案,将文件类型处理程序添加到Visual Studio。现在只需双击它并添加对话框,就像在C#中一样。 只需将生成的代码文件添加到Visual Studio项目中即可完成。

在wxWidgets中使用Visual Studio和GUI编程非常容易。

如果要在Linux上移植,也不要忘记观看CodeLite编辑器。它与Visual Studio项目和快捷键非常兼容。

答案 5 :(得分:0)

我使用wxWidgets开发了许多应用程序GUI - 你可以在http://ravenspoint.com/

看到屏幕截图 恕我直言,你应该区分设计GUI和实现它。期望使用相同的程序来设计GUI并自动发出所有代码来实现设计,这是期待的。

设计程序应该快速而简单。我推荐http://www.balsamiq.com/

一旦您确定了设计,就可以转向编码。就个人而言,我发现使用wxWidget构造函数的wxPosition和wxSize参数将小部件放置在面板上是微不足道的 - 比使用鼠标将小部件轻推到其确切位置更容易。

使用某种表单生成器为重要的GUI发出所有代码的麻烦在于,您最终会遇到很难自动生成的代码,如果代码是手写的,那么你已经知道一切都在哪里。

答案 6 :(得分:0)

我刚刚使用netbeans IDE在wx和fltk中完成了一个hello world程序。 Microsoft Visual Studio WinForms或MFC比任何一个都容易得多。我需要跨平台功能,因此我无法将其用于此应用程序。我用比wx少得多的时间完成了fltk。该程序更简单,更小,更快,更容易编写。 Wx有相当脱节的文档和组织。 Fltk是在“旧时代”设计的,当时小而快,高效。这可能就是为什么它对你来说似乎“老了”。我是一个老家伙,所以它适合我。 YMMV