我正在开发一个与硬件接口的Linux应用程序。其中一个要求是在Web浏览器中创建GUI。该应用程序将基于c ++。我不熟悉Web实现的东西,所以我想知道是否有可能做这样的事情(目前它是一个控制台应用程序从txt文件/ cmd行输入)。 gui将很简单,使用按钮并在应用程序的浏览器上显示输出消息。我想知道涉及哪些技术/语言以及如何完成。我读过的一些想法却没有发现任何具体的东西。如果您对这些或更好的建议有任何疑问,请分享
还有其他想法吗?
答案 0 :(得分:2)
我首先要设置一个常规的HTTP服务器,比如lighttp或Apache httpd。
你说你已经有一个执行实际工作的命令行程序 - 作为第一步,我会重用它,并配置Web服务器使用CGI调用你的程序 - 参见例如http://httpd.apache.org/docs/2.2/howto/cgi.html的apache < / p>
最后,我选择一些javascript框架,如jQuery或具有Ajax功能的YUI,向服务器发出请求,从网页中调用CGI脚本。您还可以创建一个没有ajax或任何框架的基于表单的Web应用程序,但这需要您在程序中填充各种逻辑以生成HTML页面。通过使用Ajax,您可以保留命令行应用程序,并使用javascript解析它提供的任何响应,然后使用它以对用户有意义的方式动态更改网页。
如果一切正常,那么我会试着弄清楚如何打包所有这些组件。也许您只想创建一个包含所有程序的简单存档,或者您可能想要在程序中实际嵌入Web服务器。或者,您可能希望以相反的方式执行此操作并将程序重写为可插入Web服务器的ISAPI模块。或者,如果仍然没有足够的集成,您可以编写自己的(部分)HTTP服务器。这真的取决于你(我可能花时间和精力去寻找最瘦,最卑鄙的现有开源http服务器并使用它)
无论如何,先前的步骤不会丢失工作。最有可能的是,开发网页正在构成工作的重要部分,因此我可能会首先使用古老的CGI技巧创建一个快速而肮脏的工作解决方案,然后开发网页让我满意。此时,您可以通过简单地将所有程序放在一个存档中来获得可接受的可分发解决方案(当然,您也必须调整Web服务器的配置,例如更改默认端口,以便它不会干扰现有的Web服务器。)仅之后我会花时间创建一个更加集成的花式解决方案。
答案 1 :(得分:1)
我最终使用Wt虽然我会更新以供将来参考。
答案 2 :(得分:0)
按照复杂性 的顺序 ,这就是我想到这样做的方式:
创建一个简单的服务器端语言(PHP / Python)网站,可以与您的应用程序进行通信(即启动和处理返回)
修改您的应用程序,使其具有内置的Web服务器,该服务器只打出HTML(通过URL获取的命令行参数)
修改应用以发布JSON并在简单的HTML页面上使用javascript将其拉入。
你可以写一个Java applet(因为你已经标记了这个帖子),但我认为你在浪费时间。如果您愿意花10分钟查找一些简单的命令,这可能非常简单。