2011-09-07 83 views
3

我是一名GUI开发人员。我使用了许多GUI框架,包括WindowsForms,Flash,HTML,AppKit,UIKit。我可以说我知道如何编写GUI。如何编码命令行界面?

突然间,我对命令行界面有了兴趣。像VI或Emacs一样。因为我开始使用GUI进行编程,所以我没有任何有关CLI的经验或知识。当然,我使用VI和unix shell,但是我不知道如何实现它们。我想知道它。

对于图形用户界面,对所有图形的东西最基本的构建体是最低级别的绘制方法。对于软件实现,它是基于CPU的绘图方法。对于硬件加速实现,它是基于OpenGL的方法。所有的GUI东西都建立在它们之上。我可以期待什么CLI?我如何在控制台上绘制文字并使插入符号闪烁?

我只需要第一步。就像函数名或库名一样。例如,像setPixel()这样的函数。任何帮助将不胜感激。

P.S. 我更喜欢一般的Unix系统。主要是POSIX。目前我使用的是Mac OS X的当然语言是C

+1

在一天它的端部“仅仅”归结为发送和接收终端的转义序列如[VT-100转义码(http://ascii-table.com/ansi-escape-sequences-vt- 100.php)。然而,手工操作很痛苦,并且有非常多的[稍微]不同的终端/终端功能!强烈推荐图书馆:) – 2011-09-07 07:20:34

+0

我不会为您更改问题,因为您的代表> 4800代表,但是您应该添加[Posix]和[C]代码 – xanatos

+0

@pst确定。如果他们不兼容很多,我不会去那里。也许。 – Eonil

回答

5

如果你想潜入正面,学习ncurses并输入。这是编写控制台gfx应用程序的方式。

如果你想学习的基础知识,ANSI escape codes。这是ncurses如何与终端进行接口的机制。它本身非常易于管理,而且还有一个有趣的学习内容 - 只需打印出一个转义序列,并将光标移动到屏幕上的特定点,或打印出的任何内容都将打印在反转视频等内容中。从那里,它是使用256个ASCII码的上半部分的粗糙的semigraphics等等。

1

C具有对终端的操作更好库:ncurses

2

在哪种语言,你尝试?哪个os?如前所述,ncurses对于unix系统来说是一个很好的解决方案,但是如果你在ms windows下,我想事情会有所不同。

要记住的另一件事是,根据您的操作系统,您可能需要学习&了解termcap条目或继承的DOS遗产。

对于你,如果你想用像素和类似的系统进行试验,以检查一些图形库* nix中。如果它只是你需要的普通终端接口,那么ncurses是一个起点(直到你想用termcap和escapes手工完成)。

有很多是框架,用于开发基于文本/终端UI,或多或少,他们给你所需要的一切。但是如果你想从像素(1,1)到像素(10,24)的线条追溯,我认为你应该关注图形库。 (* nix env中的OpenGL很容易通过MESA库获得)。

在Win32,好了,DirectX的,但他们是一个雷尔麻烦。

+0

噢谢谢你的关心。我错过了。我更新了我的问题以呈现我的目标平台。 – Eonil

+0

好吧,如果它归结为图形的东西会搞砸了一下。例如,在MS-DOS良好的日子(或HP-UX日子)中,您必须依赖图形子系统(在DOS上设置图形模式,依靠* nix上的X)。如果我回想起来,最简单的图形工具包是“乌龟” - 是好老帕斯卡尔:)编辑更多的图形见解。 – BigMike