【问题标题】:How Linux programmers create GUI application without using IDE? [closed]Linux 程序员如何在不使用 IDE 的情况下创建 GUI 应用程序? [关闭]
【发布时间】:2010-05-15 17:45:59
【问题描述】:

我在一些论坛上读过一些 cmets 说 Linux 程序员通常不使用任何 IDE。他们更喜欢使用 Vim 和 Emacs 进行编程。

如果我没记错的话,Vim 和 Emacs 只是文本编辑器,类似于记事本,但带有语法高亮显示。

我只想知道Linux程序员如何在不使用任何IDE的情况下创建复杂的GUI应用程序。

谢谢。

【问题讨论】:

  • IDE 为您做的唯一一件事就是创建用于在表单上布局控件的代码。所以理论上,如果一台计算机可以生成代码,你就可以手动编写它。把它做好并不难,但很复杂(直到你习惯它:))
  • 另外,如果您让用户可以高度自定义界面,那么您只需运行应用程序,将界面配置为您想要的方式,然后将这些设置保存为您随应用程序分发的默认设置.
  • 此外,还有像 Java 的布局管理器这样的东西,它较少依赖程序员专门布置控件,而更多地依赖于代码,一旦知道它们之间的关系,如何最好地布置它们。
  • 呃,什么? UNIX IDE。
  • Vim 和 Emacs 不仅仅是文本编辑器。在几乎所有方面,它们都比“IDE”更强大。

标签: linux user-interface vim emacs ide


【解决方案1】:

您可以仅从源代码创建 gui(例如:http://library.gnome.org/devel/gtk-tutorial/2.17/c39.html#SEC-HELLOWORLD)。或者,您可以使用独立的 GUI 设计器(例如,用于 GTK+ 的 Glade 和用于 Qt 的 Qt Designer)来设计 GUI,并在用 Vim 或 Emacs(或其他任何东西)编写的应用程序中使用它们。

【讨论】:

    【解决方案2】:

    您做了一个很大的假设 - 大多数 Linux 开发人员都在开发 GUI 应用程序。

    许多遵循 unix 理念的开发人员创建基于文本的应用程序(例如,参见git,源代码控制管理系统)。

    在为 Linux 创建 GUI 时,一些开发人员会使用文本文件,而一些开发人员会使用设计人员来提供帮助。

    不管怎样,GUI 也是在文本文件中定义的。这些要么由设计师生成,要么由程序员编写。对编译器影响不大。

    【讨论】:

      【解决方案3】:

      如果您真的想了解它的工作原理,请阅读任何 GUI 工具包的教程。您编写的代码使用库来构建 GUI。对于一个很好的例子,安装 python 和 wxPython 及其演示。该演示以很好的格式为每个 GUI 小部件提供了可运行的示例程序 - 一个选项卡显示 UI,另一个选项卡显示代码。 GUI 是根据代码创建的,这与您拖动控件并为您创建代码的某些环境不同。

      当然有 Nx​​M 种方法可以做到这一点,其中 N 是工具包的数量,M 是语言的数量。我只是指出 wxPython 组合有很好的例子。我还用 Pyhon 做了一点 GTK,在线文档也很好。当然可以在其他语言中找到示例。

      【讨论】:

        【解决方案4】:

        Emacs 和 Vim 是 IDE——集成开发环境,这意味着它们将与编写程序相关的各种程序组装到一个地方。您与 IDE 混为一谈的部分是某些 IDE 的一个组件,称为表单/gui 布局设计器。我不确定 Visual Studio 怎么称呼它。这些设计器程序通常集成到 Visual Studio 等 IDE 中,可让您直观地排列 GUI 元素。

        但是,设计人员仅帮助您为特定框架设计 GUI。在 Windows 中,Visual Studio 允许您在 .NET 中排列 Windows 窗体。 GTK 是另一个在 Linux 上流行的 GUI 框架,它有自己的独立设计器。 Qt 还有一个(非常好的)设计师。 Netbeans 有一个 Java Swing 表单设计器。

        关键是:这些设计师最终所做的只是自动生成一些您可以在文本编辑器中手动编写的代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-05
          • 1970-01-01
          • 2015-08-17
          • 2013-09-26
          • 1970-01-01
          • 2012-05-20
          • 1970-01-01
          • 2017-04-28
          相关资源
          最近更新 更多