如何将GUI改造为现有的C程序?
我一直在做一个项目,移植一个旧的solaris CL程序在Linux上运行,除非出现一些不相关的硬件问题,否则就完成了。现在我想要一个GUI,这样用户可以通过下拉菜单和复选框在各种选项中进行选择,还可以在一些文本输入区域中选择不受限制的选项,如文件名。(该程序是一个内部工具,用于运行一些光谱扫描仪并将结果存储为CSV文件。它处理所有这些选项,运行扫描仪并处理信息,并使用指定的文件名存储信息;我只想使用比CL更好的工具。)如何将GUI改造为现有的C程序?,c,user-interface,tcl,C,User Interface,Tcl,我一直在做一个项目,移植一个旧的solaris CL程序在Linux上运行,除非出现一些不相关的硬件问题,否则就完成了。现在我想要一个GUI,这样用户可以通过下拉菜单和复选框在各种选项中进行选择,还可以在一些文本输入区域中选择不受限制的选项,如文件名。(该程序是一个内部工具,用于运行一些光谱扫描仪并将结果存储为CSV文件。它处理所有这些选项,运行扫描仪并处理信息,并使用指定的文件名存储信息;我只想使用比CL更好的工具。) 我唯一一次看到这样的东西是一个PyGTK+GUI,带有C代码的python
我唯一一次看到这样的东西是一个PyGTK+GUI,带有C代码的python绑定(我想就是这样;那是我第一个学期的合作,我不太懂!)。这比我现在想了解的要多一些;有没有一种相对简单的方法可以做到这一点?当我在谷歌上搜索时,我发现了SWIG();这是一个好方法吗?既然您已经熟悉PyGTK,为什么不使用它呢?毕竟,PyGTK只是Gtk+的绑定,Gtk+是用C编写的
它也是跨平台的。因此,如果您使用您的应用程序,它几乎可以在任何地方运行。我以前使用过tcl/tk包装较小的CLI程序,而且它通常一开始就可以正常工作 tcl/tk是一种脚本语言/软件包,它将调用和解析CLI输出,因此您不必编写新程序
听起来这项工作正是为之而设计的。它有一个非常简单的C API,允许您使用回调注册命令。如果在Tcl程序中使用该命令,它将调用回调,并提供一种机制来在Tcl列表(本机数据结构)和ARGV样式的char*数组之间转换参数 它是专门设计的,以便将这种包装器改造成命令行驱动的C程序。您还可以使用多种其他模式来连接解释器,并且它很容易作为脚本语言嵌入到程序中。内存中可用的接口机制包括:
- 在Tcl中注册命令 翻译
- 将Tcl解释器嵌入到 编程并使用Tcl作为嵌入式 脚本语言(可能包括注册命令和回调到 计划)
- 使用全双工管道生成进程,并通过 标准输入/标准输出(您也可以附加 将事件处理程序添加到 数据可用时调用)
- 较少的Tcl特定机制,例如 fork/exec或通过套接字连接
如果你与TCL一起发现你的项目有自己的生命,考虑嵌入TCL解释器并将应用程序重新编译为插件API,人们可以将自己的脚本绑定到其中。额外的功能可以作为脚本来完成,并且可能会欺骗第三方进行维护。使用内置脚本语言的系统的优点之一是,您个人不必实现功能。人们可以用脚本语言编写自己的扩展,也可以让第三方为他们编写扩展
SWIG被设计为围绕库生成包装器。它解析头文件并生成用目标语言表示本机API的粘合层。要使用它,您必须将程序重新分解到库中 Tcl/Tk怎么样。。丰富的资源。。例如任何工具包或框架都可以解决您的问题,因为您请求的UI充当命令行可执行文件的包装器。您可以选择C#、MFC、VB6或任何您想要的工具。基于.NET的语言(如C#)对于命令行UI包装器来说非常容易。如果你想在C++中做,WxWistGes、Qt或Engest+++可以帮助你。
如果你知道如何在C中编程,你可以在Win32 API中完成它,但是你必须管理一些在C++框架中自动处理的东西。p> < MGui >(Myro图形用户界面)是一个跨平台的图形用户界面,它是在ANSI C中编写的,也通过一个框架库提供了一个C++ API。它由一个库组成,包括所有典型的GUI对象,如菜单、按钮、可编辑字段、列表等。。。还有鳕鱼