【问题标题】:How do you display GTK3 ScrollBar stepper buttons in Vala?如何在 Vala 中显示 GTK3 ScrollBar 步进按钮?
【发布时间】:2016-03-29 05:27:55
【问题描述】:

如何在 Vala 中显示 GTK3 ScrollBar 步进按钮?

this.bar = new Scrollbar (Orientation.VERTICAL, adj);

在 C + GTK3 中打开步进按钮很容易,这是默认设置。通常的 Vala 文档告诉您如何设置按钮的增量,但不告诉您如何显示按钮。对于 Vala + GTK3 文档中的每个关键字组合以及 C + GTK3 的每个组合,谷歌搜索都会返回零。

以下代码在 C 语言中生成一个滚动条。按钮默认打开。

scroller = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, scroller_adjustment);

【问题讨论】:

  • 能否将C示例代码添加到您的问题中,也请考虑在Vala中写一个MCVE
  • @Jens,添加了C示例。

标签: gtk3 vala


【解决方案1】:

在 C + GTK3 中打开步进按钮很容易。

在这种情况下,提供(或链接到)您的意思的示例会很有帮助。如果您了解 Vala,从 C 移植到 Vala 通常很简单,但不提供它意味着不熟悉 GTK+ 特定部分的人必须查找文档才能回答(并且可能会弄错)。

通常的 Vala 文档告诉您如何设置按钮的增量,但不告诉您如何显示按钮。

假设“通常的 Vala 文档”是 Valadoc,the Vala documentationthe C documentation 相同。 C 文档也用作其他语言文档的基础,所以如果您有改进它的好主意,我相信 GTK+ 的人会喜欢补丁。

无论如何,假设您想要将“has-forward-stepper”和“has-backward-stepper”属性设置为 true,您可以执行以下操作:

this.bar.has_forward_stepper = true;
this.bar.has_backward_stepper = true;

我想说这比在 C 中要容易得多,在 C 中你必须使用像 g_object_set(self->bar, "has-forward-stepper", true, "has-backward-stepper", true, NULL) 这样的东西,很多东西都可能出错(没有类型安全,你可能会忘记哨兵等)。但是,如果您愿意,您可以像在 C 中一样在 Vala 中执行此操作:

this.bar.set ("has-forward-stepper", true, "has-backward-stepper", true);

请注意,与 C 版本一样,没有类型安全性。但是,Vala 会自动为您添加 NULL 标记。

GTK 被 Vala 绝育。

在我从你那里看到的最后一个问题中,你也在抱怨 Vala 有多难。就像这个问题一样,那个人有一个比 C 简单得多的答案。也许你不应该抱怨 SO,你应该实际上 learn Vala,停止使用它,或者至少在你找到一些东西之前不要再用恶作剧这在 Vala 中 实际上 很困难,而不是有一个你根本不知道的微不足道的答案。

【讨论】:

  • 用于 vala 滚动条的 google 生成 references.valadoc.org/#!api=gtk+-3.0/Gtk.Scrollbar。该页面提到了步进器,但没有提到 has_forward_stepper 或任何其他打开步进器的方式。谷歌的 vala 滚动条步进器只产生这个问题和前面提到的有缺陷的 valadoc 页面。 google for c 滚动条步进器生成developer.gnome.org/gtk3/stable/GtkScrollbar.html,其中列出了六个样式属性,包括 has_forward_stepper。因此文档不一样。
  • 编译器产生:错误:名称has_forward_stepper' does not exist in the context of Gtk.Scrollbar' this.bar.has_forward_stepper = true;
  • 编译器没有错误地接受了以下行,但没有出现步进按钮。 this.bar.set("has-forward-stepper", true, "has-backward-stepper", true);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多