【问题标题】:Perl application with GUI for windows 7用于 Windows 7 的带有 GUI 的 Perl 应用程序
【发布时间】:2013-06-04 11:10:32
【问题描述】:

我做了很多搜索,但似乎找不到最新的答案。

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

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

现在我的问题:

我想将 GUI 和 Perl 逻辑分开。所以理论上,如果我创建的 GUI 只是调用各种 Perl 脚本 -> 执行某些操作然后将某些内容返回给 GUI,它应该可以工作。

有没有人有使用 C# .net 创建的 GUI 与各种 Perl 脚本交互的经验?如果是的话,你能告诉我一些你在体验过程中注意到的积极或消极的事情吗?

我也一直在玩 tkx。我想我可以使用它,但它会明显增加开发时间。有人知道生成 perl tkx 代码的 GUI 构建器吗?

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

如果有任何建议,我将不胜感激。 谢谢

【问题讨论】:

    标签: c# .net perl user-interface tkx


    【解决方案1】:

    你想在 C# 中拥有一个新的 gui 吗? Visual Studio 有一个用于 WinForms 和 WPF 的 gui 构建器。 WinForms 构建器非常好,但是 WPF 构建器相当垃圾,最好自己“手动编码”XAML 代码,并且仅将构建器用于可视化您正在构建的内容。对于动画/模板的严肃工作,我推荐使用 Blend。

    我从未执行过 perl 脚本,但如果您的 perl 解释器没有像样的 .Net api,则执行其他外部程序的过程不会有所不同。

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

    这方面的好处是 System.ComponentModel.BackgroundWorker 命名空间中的 BackgroundWorker 类,它本身可以处理许多“低级线程事物”

    【讨论】:

    • 感谢您的回复。是的,当 a 等待 n 回答时,我正在使用 Process 类做一些事情。这似乎运作良好。将所有内容放在自己的线程中似乎是正确的方法。我会坚决使用您发布的信息
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多