【问题标题】:VisualStudio for Mac + GTK - Is it a real product?Visual Studio for Mac + GTK - 它是真正的产品吗?
【发布时间】:2018-03-06 04:11:43
【问题描述】:

我的任务是开发适用于 Mac 和 Windows 的桌面应用程序。在搜索可视化环境时,我发现带有 Gtk 的 Visual Studio 是最有希望的选择。

我找到了一个非常有用的 API here 文档。

我可以从this one 之类的问题中获得一些基本帮助。

我认为它与GtkSharp 项目密切相关。

所以我开始开发,只是为了发现我正在做的事情没有重要的社区支持。

搜索视频教程,这些视频教程将演示创建两个以上按钮的 UI,并且一个标签没有给我任何帮助。我已经注册了承诺提供教程的 Xamarin 大学,但那里什么也没找到。

我试图添加更多窗口,但在没有可视化编辑器的情况下将它们作为源代码获取,但找不到任何解决方案。

我已经意识到,当我必须从相机(我当前的任务)捕获视频时,我会发现没有支持这样做。所以我怀疑我必须找到替代的 Python 或 Java 解决方案。

谁能介绍一下这个 VS/Gtk 项目的状态并解释如何获得对它的支持?

谢谢!

【问题讨论】:

  • Gtk (& GtkSharp) 有很长的历史,但 Gtk 通常不适合胆小的人,而 GTkSharp 是一个非常薄的 C# 包装器。我的客户仍在 Win/Mac/*nix 上运行我的 Mono/Gtk 应用程序,但对于新的 Windows/macOS 应用程序,我强烈建议使用 Xamarin.Mac(对于 UI 使用或不使用 Xamarin.Forms),因此在 Windows 上使用 UWP (用户界面有或没有Xamarin.Forms):blog.xamarin.com/preview-bringing-macos-to-xamarin-forms
  • AFAIK 没有“VS/Gtk 项目”之类的东西。 Gtk 是一个小部件工具包,VS 是一个 IDE。这些之间没有直接联系。
  • IDE 是“Visual Studio 社区”。它具有 Gtk 模式:新解决方案 > 其他 > .NET > Gtk# 2.0 项目
  • GTK# 不是 Xamarin 家族的一部分,而是一个纯粹的社区项目。所以当你说“只是为了发现我正在做的事情没有重要的社区支持”时,你应该意识到没有社区它根本就不存在。如果您寻找资源来学习它,请从示例中学习(Banshee/Tomboy 是伟大而复杂的 UI)。与商业产品不同,这样的开源项目不会有大量的书面材料。

标签: gtk# visual-studio-mac


【解决方案1】:

Gtk# 是 Mono 看到光亮后最早可用的图形工具包之一。它在 Windows、Mac 和 Linux 上运行良好,但它卡在 Gtk v2 中,而在写这个答案的那一刻,Gtk 版本已经是 3。

您可以放心使用它,因为您可以保证它在所有平台上都能正常工作(除了不是最新的图形工具包)。我发现的一个缺点是它严格执行了一种非常严格的风格。例如,你不能做一些花哨的事情,比如改变按钮的颜色。另一个缺点是 TreeView 的 ListView 的、GridView 的......都由一个具有各种存储可能性的类表示,这使得它很难掌握,恕我直言。

对于后者,我自己创建了一个TableTextView,即一个以字符串为值的简单表,这是迄今为止更常见的需求。

您可以找到nice Gtk# tutorial here

最后,我的建议是不要使用 Glade 或内置设计器。这样做会将您的代码绑定到给定的 IDE,而“手动”编程您的界面将使您对工具包的内部有更多的了解。

【讨论】:

  • 感谢您的回答。我试图摆脱手的定位,但你确实提高了分数。
  • 我同意,尽管有一些方法可以更改按钮颜色和样式,或者任何与此相关的小部件。有 gtk-rc 文件,您可以在启动时将其加载到应用程序的进程空间中(这是一种定义样式和使用哪个渲染引擎的声明性方式)以及在运行时修改这些内容的方法(在 v3 中是 gtk-rc 文件是基于 v2 的 css,它是自己的语言)。它还有 Cairo 和 Pango,可让您做任何您想做的事。我的一个应用程序 (continuity.kiwi.nz) 完全使用 GTK# 构建。
猜你喜欢
  • 2017-10-14
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多