2013-06-04 32 views
2

我已经完成了相当多的搜索,但似乎找不到最新的答案。用于Windows 7的GUI的Perl应用程序

我目前正在重写一个用Perl编写的应用程序。所以我不是从头开始的。

该应用程序目前已经有一个用C#.net编写的基本GUI,但我的目标之一是创建一个新的改进的GUI。该GUI在实现几个功能,所以它真的会减轻我的工作量,如果我能在.NET中使用的GUI建设者像

现在我的问题:

我想GUI和Perl的逻辑分离。所以理论上它应该可以工作,如果我创建的GUI只是调用各种Perl脚本 - >哪些做了什么,然后将某些东西返回给GUI。

有没有人有过使用C#.net创建的GUI与各种Perl脚本进行交互的经验?如果是的话,你可以告诉我一些你在体验过程中注意到的正面或负面的东西。

我也一直在玩tkx。我想我可以使用这个,但它会突然增加开发时间。有谁会知道一个生成perl tkx代码的GUI生成器吗?

我也看过像TK,QT等其他人,但主要问题是他们都有依赖关系。

我将不胜感激任何意见。 谢谢

回答

1

你想在C#中有一个新的GUI? Visual Studio有一个用于WinForms和WPF的GUI构建器。 WinForms构建器相当不错,但WPF其实是一个废话,最好是自己手动编写XAML代码,并且只使用构建器来可视化你正在构建的东西。对于动画/模板的认真工作,我推荐Blend。

我从来没有执行perl脚本,但是执行其他外部程序的过程不会不同,如果你的perl解释器没有体面的.net api。

对于以“标准方式”执行脚本,您可以使用System.Diagnostics命名空间中的Process类。您可以放入命令行参数或标准输入并读取标准输出和标准错误。唯一需要担心的是,如果外部程序挂起,将某些内容放到stderr中但不会结束,则可能会卡住。你应该同时读取脚本的stdout和stderr(每个都在单独的线程中),Process也应该被实例化并在自己的线程中运行 - 所以你不会挂起你的应用程序,你可以监视进程并为用户提供“取消”按钮。

这个好东西是从System.ComponentModel.BackgroundWorker命名空间的BackgroundWorker类,它可以处理大量的“低级别的线程的东西”本身

+0

感谢您的答复。是的,当等待n回答我正在做一些与Process类的东西。这似乎运作良好。把所有东西都放在自己的线程中似乎是正确的路要走。我会挑衅地使用你发布的信息 – BuildingJarl

1

ActiveState似乎已经发布了一个名为GUI Builder的程序。它似乎与Perl,Ruby,TCL & Python兼容。

+0

酷感谢病检查出来 – BuildingJarl

相关问题