【问题标题】:How can I make a GUI frontend to a command line tool in OSX?如何在 OSX 中为命令行工具制作 GUI 前端?
【发布时间】:2011-02-05 06:07:31
【问题描述】:

我很想知道如何在 OSX 中为 ffmpegjhead 制作 GUI。我一直在寻找解决方案一段时间,并认为你,stackoverflow 的用户,可以帮助我。也许您知道一些我没有遇到过的文档,或者更好的是制作 GUI 的教程。

我喜欢这两个工具,但我喜欢拖放操作的简单性。

注意:我不需要他们的 GUI,我想做一个。

【问题讨论】:

标签: cocoa xcode user-interface command-line frontend


【解决方案1】:

在 Cocoa Dev Central 站点上有一个使用 NSTask 封装命令行工具的教程:

现在已经有几年了,但应该可以帮助您入门。

【讨论】:

  • 这正是我想要的!我会开始的 =D 谢谢!
【解决方案2】:

如果您问“如何在 Mac OS X 中创建与命令行工具交互的 GUI 应用程序”,答案是 NSTask。不过,如果命令行工具提供了编程 API,那么使用它会比调用命令行工具本身更可取。

如果您问“如何在 Mac OS X 中创建 GUI 应用程序”,答案是阅读有关它的书并查看 Apple 教程文档。 Mac OS X 上的 Cocoa 编程是我的起点。

【讨论】:

    【解决方案3】:

    您可以将 Tcl、Python 或 Ruby 等脚本语言与 Tk 等工具包结合使用,该工具包在 mac 上使用本机小部件。

    【讨论】:

      【解决方案4】:

      首先使用所需的 GUI 创建一个模态对话框 NIB。
      在 C 中调用时,创建一个 NSReleasePool,然后创建魔法酱。

      [NSApplication sharedApplication]     
      ProcessSerialNumber psn;
      GetCurrentProcess( &psn );
      TransformProcessType(&psn,kProcessTransformToForegroundApplication);
      SetFrontProcess( &psn );
      

      稍后从 Bundle 加载 NIB 后,发出

      [NSApp runModalForWindow:[controller window]];
      [[controller window] close];
      

      如果没有 TransfromProcessType(),终端应用程序将获得击键,而不是模态对话框。

      【讨论】:

        【解决方案5】:

        这可能不是最好的答案,但在“Xcode unleashed”一书中,有一章介绍了如何在 Cocoa 应用程序中嵌入命令行工具。也许你应该看看。还是不错的书。

        【讨论】:

          【解决方案6】:

          在您的 Leopard/Snow Leopard 磁盘上,您可以找到 XCode,但您也可以从 Apple 开发者社区下载它。 XCode 带有 Interface Builder,它允许您构建 GUI,并且您可以使用 Cocoa 框架来绑定您的命令。

          【讨论】:

            【解决方案7】:

            你太晚了,已经有一个名为ffmpegX的ffmpeg GUI前端,但无论如何,你会创建一个模型来包装或使用库或可执行文件....如果它使用你可以使用的可执行文件popen 调用可执行文件,写入其 STDIN,并从其 STDOUT 读取。视图和控制器基本上与您为任何其他 GUI 应用程序设计的相同。由于这是一篇 Cocoa 帖子,您可以使用 Objective-C 和 Cocoa 来制作 GUI,但它确实可以用任何语言实现。

            【讨论】:

            • 我知道,但 ffmpegX 并不是我喜欢的那种软件(拖放、转换、完成),太多的设置分布在一个充满控件的类似 Windows 的界面上。我想构建类似 EasyWMV 的东西:easywma.com/wmv
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-08-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-09-23
            • 2010-10-25
            • 1970-01-01
            相关资源
            最近更新 更多