什么';这是在Linux平台上为C程序创建用户友好前端的最简单方法

什么';这是在Linux平台上为C程序创建用户友好前端的最简单方法,c,linux,user-interface,C,Linux,User Interface,我有一个小的课程项目,最好有一个用户友好的前端。 这是一个网络嗅探器,我用C和Linux编写了程序。现在我希望它更“用户友好”如果你的嗅探器有一个命令行前端,看看Eric S.Raymond的。在第10章中,有一整节介绍了如何命名和格式化你的命令行参数。还有一个POSIX标准 这些方法不会直接使您的程序对用户友好,只有对用户的研究和界面的分析才能对此有所帮助。但是,提供一个用户期望的界面肯定会有所帮助。在c中: 在C++中,如果相关: 尝试像其他程序一样运行(至少提供一条有用的--help消息,

我有一个小的课程项目,最好有一个用户友好的前端。
这是一个网络嗅探器,我用C和Linux编写了程序。现在我希望它更“用户友好”

如果你的嗅探器有一个命令行前端,看看Eric S.Raymond的。在第10章中,有一整节介绍了如何命名和格式化你的命令行参数。还有一个POSIX标准

这些方法不会直接使您的程序对用户友好,只有对用户的研究和界面的分析才能对此有所帮助。但是,提供一个用户期望的界面肯定会有所帮助。

在c中:

在C++中,如果相关:


尝试像其他程序一样运行(至少提供一条有用的
--help
消息,并为无效参数打印一些简单的用法说明)我发现理解如何使用程序最简单的方法是当它的手册页面,甚至是帮助信息给出常见用例的例子时。

我不是UI设计方面的专家,但由于对用户界面设计的质量感兴趣,我遇到了一位名叫Aza Raskin的界面设计专家pert是Mozilla实验室的设计负责人。我听过Aza关于UI设计的一些讲座和惯例,他说了一些简单但比我从UI设计中学到的任何东西都更有意义的话……我可能会扼杀它,但这是按照 如果用户必须考虑设计,那么这是一个糟糕的设计

这似乎是对每个人的智力的侮辱,但它是有道理的。用户友好的东西对用户来说不能含糊不清。这意味着当用户执行某些任务/操作时,应该根据当前事件或情况向他们显示UI

用户界面的设计应该使任何拿起你的软件的人都能够在其中导航。这并不意味着他们应该了解潜在的问题领域,但这确实意味着如果要求他们查找软件的某个功能部分,他们通常可以在那里导航

使用软件时需要考虑的一些事情:

    1) -Do you ever ask yourself, "Do I go here or here?
    2) -Do I use tools like bold fonts and italicizing to show emphasis?
    3) -Am I sacrificing anything by making certain features "idiot proof"(Read Below)
    4) -Am I trying to do too much anywhere just to save time(programming time)
这些只是一些可以帮助你理顺一些设计决策的东西。这绝不是遵循任何模式。就像我说的,我在这个领域的教育是微乎其微的,这只是我一直遵循的兴趣


关于#3,重要的是,在实施某些适应措施时,不要牺牲任何功能或设计决策。如果您有99%的用户正在使用某个功能,但有1%的用户可能会做出不同的决策,那么请考虑这一点。不要为了99%的用户选择而牺牲设计容纳其他1%。这并不意味着不容纳其他用户,我只是说不要牺牲设计的完整性。

如果用户友好的意思是你想为它制作一个gui,那么我肯定会推荐GTK。GTK是使用更广泛的Xserver工具包之一,它是用C编写的。另一个优点是它是编写的以面向对象的方式完成10个。对于所有CS学生来说,让我了解如何用C完成OO编程是一件很好的事情。

如果你不需要与应用程序“live”交互“或者只需要作为命令行应用程序进行有限的交互,就可以使用PyGTK编写前端。如果需要访问C库,那么可以使用Cython加载和调用它们


但是不管你选择什么,一定要找一个专业的界面设计师。糟糕的界面会破坏任何应用程序的潜在流行性。

我已经尽我所能回答了,但用户友好设计是一个模糊而广泛的话题。在编程之前,您可能需要确定项目需要什么样的用户友好性。在像c这样的低级语言中,“简单”和“用户友好”可以一起完成的情况并不常见。用户友好通常需要相当多的内部状态抽象和容错输入处理,而在c中,您必须自己管理所有这些,或者找到一个库来为您完成(然后您必须阅读大量文档才能理解它是如何完成的)。非常感谢,这似乎是一个简洁的解决方案。非常感谢,我正在尝试GTK+。