使用C设计GUI应用程序的最佳方法是什么?

时间:2010-04-17 14:30:57

标签: c user-interface

我总是找到关于这个主题的好教程,但它几乎总是C ++。使用C制作GUI应用程序是困难还是没有意义?

一本好书,指南或教程都可以。

平台:Linux

8 个答案:

答案 0 :(得分:8)

使用GTK+。它是用C语言编写的,并且公开了一个设计良好的C API。他们的tutorial非常出色。

GTK +是GNOME的工具包,因此您的应用程序将适用于许多Linux桌面。

答案 1 :(得分:7)

如果你在Windows上使用C编程 - Petzold的编程窗口曾经是基于C语言的ui工作的圣经。

修改 自从我回答了我的问题后,该帖子已经更新为Linux。我会留下这里的帖子给任何人看,但它确实不适用于Linux。

答案 2 :(得分:2)

许多高质量的GUI都是用C语言编写的,例如Windows API。没有特别的原因,但面向对象编程在交互式图形建模方面非常成功。 GUI元素以某种方式自然地映射到C ++对象,这些对象可以将复杂行为封装在简单的接口之后。

答案 3 :(得分:2)

别。

使用python然后绑定用C编写的计算成本高昂的调用。

答案 4 :(得分:2)

  

使用C设计GUI应用程序的最佳方法是什么?

不要,如果你不需要: - )

  

使用C制作GUI应用程序是困难还是没有意义?

它不一定很难,但是一个非常冗余和冗长的任务(比如用汇编语言编写高级程序),有很多重复的样板代码。

就我个人而言,我发现简单地将脚本解释器(例如Lua,Nasal)与GUI库绑定,然后使用高级脚本语言编写UI代码并仅在C中编写应用程序本身的核心更有价值。之前曾提到过Python,但我认为像Lua这样的专用扩展语言会更合适,因为它不会使你的源代码膨胀,也不会产生任何额外的需求(比如库依赖或架构)。

换句话说,嵌入像Python,Perl或Ruby这样的东西可能相对简单(因为良好的文档和社区动力),但这些语言通常比宿主应用程序本身更复杂。

这也是AlgoScore软件采用的方法,该软件使用带有GTK绑定的嵌入式鼻腔解释器。

答案 5 :(得分:2)

  • nCurses C中老式DOS风格图书馆的图书馆。

  • GTK 适用于现代GUI。

  
      
  • 使用 Qt 作为跨平台工具   开发GUI   赢/ Linux的/ MAC /嵌入/诺基亚

         

    http://qt.nokia.com/

  •   

答案 6 :(得分:1)

足够困难(或者,大多数情况下,足够冗长),大多数人认为它没有意义。应用程序的GUI部分(主要是)对用户输入作出反应,因此在这个区域中,速度很少是关键的 - 几微秒(甚至几毫秒)的差异很少会产生很大的差异。只要响应在100毫秒(或左右)内出现,它们就会被视为“即时”。

动态类型也可以很好地用于很多GUI编程。 C仅使用静态类型。

答案 7 :(得分:-1)

如果您使用的是* nix系统,则可以使用Xlib。但是你最好不要用C ++编程并调用你的C代码。