我是一名GUI开发人员。我使用了许多GUI框架,包括WindowsForms,Flash,HTML,AppKit,UIKit。我可以说我知道如何编写GUI。
突然间,我对命令行界面感兴趣。像VI或Emacs。因为我开始使用GUI编程,所以我没有任何关于CLI的经验或知识。当然,我使用了VI和unix shell,但是我不知道如何实现它们。我想知道它。
对于GUI,所有图形内容的大多数基本构造都是最低级别的绘图方法。对于软件实现,它是基于CPU的绘图方法。对于硬件加速实现,它是基于OpenGL的方法。所有GUI内容都建立在它们之上。我对CLI有什么期望?如何在控制台上绘制文本并使插入符闪烁?
我只需要第一步。像函数名称或库名称。例如,像setPixel()
这样的功能。任何帮助将不胜感激。
P.S。 我更喜欢通用Unix系统。主要是POSIX。目前我正在使用Mac OS X.当然语言是C。
答案 0 :(得分:5)
如果您想直接潜水,请学习ncurses并输入。这是编写控制台gfx应用程序的方法。
如果您想学习基础知识,ANSI escape codes。这是ncurses如何与终端进行魔法交互的机制。它本身就很容易管理,也是一个有趣的学习主题 - 你只需要打印一个转义序列,光标移动到屏幕上的特定点,或者打印出的任何内容都以反向视频打印,依此类推。从那里开始,使用256个ASCII代码的上半部分是原始的半光学,依此类推。
答案 1 :(得分:3)
查看http://en.wikipedia.org/wiki/Readline,因为它可以为您提供命令行历史记录,制表符完成等内容......
还为基于控制台的对话框屏幕添加http://en.wikipedia.org/wiki/Ncurses。
答案 2 :(得分:2)
你在用哪种语言进行实验?哪个操作系统?正如已经说过的那样,ncurses对于像unix这样的系统来说是一个很好的库,但是如果你在ms窗口下,我想事情会有所不同。
要记住的另一件事是,根据您的操作系统,您可能需要学习&了解termcap条目或继承的DOS遗产。
对于* nix,如果要试验像素和类似物,则必须检查一些图形库。如果它只是你需要的普通终端接口,ncurses是起点(直到你想用termcap和escapes完成所有操作)。
有很多框架可用于开发基于文本/终端的UI,或多或少地提供您需要的一切。但是如果你想跟踪一条从像素(1,1)到像素(10,24)的线,我认为你应该专注于图形库。 (* nix env中的OpenGL很容易通过MESA库获得。)
在win32上,好吧,DirectX,但它们真的很麻烦。
答案 3 :(得分:1)
C有一个库,可以更好地操纵终端:ncurses