问题标签 [genie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

genie - Genie 中的课程

我正在尝试在 Genie 中复制 Python 的Verbal Expression库作为学习如何使用类的练习。我有一些简单的类,就像教程中列出的那些,但是当涉及到以面向对象的方式实例化方法时,我遇到了问题。这是我正在尝试的:

出于培训目的,我想要一个名为 add 的方法,其行为与 string.concat() 相同。

但我得到了错误:

当我使用不同的方法时,例如:

我在上述文本的最后一行收到错误,并发出警告:

我希望能够使 test.add(sec) 的行为与 test.concat(sec) 相同,我该怎么做才能做到这一点?

0 投票
2 回答
187 浏览

gtk - FileChooserButton 行为

当我将 selection_changed 连接到 FileChooserButton 中的函数时,我遇到了一个奇怪的行为。在SO用户的帮助下, 我现在了解了 selection_changed 语法。但是当我在同一个程序中第二次使用它时,发生了一些奇怪的事情。

语境

我的目标是创建一个窗口,其中包含两个 FileChooserButtons 和一个位于窗口末尾位置的 Entry 文本。第一个 FileChooserButton 帮助用户选择目录并使第二个 FileChooserButton 在用户在第一个中选择的目录中打开。到目前为止,代码运行良好。该条目也被正确绘制并显示“文件名在这里”。预期的行为是在检查文件是否可写后,在第二个 FileChooserButton 中选择文件名时更改条目的文本。

我使用的策略是将 selection_changed 连接到一个函数,该函数负责检查文件是否可写以及条目文本的更改。

问题是该函数从未被调用。我添加了一个调试愚蠢的代码,如:

它永远不会被打印出来,因此我想这个函数永远不会被调用。有问题的函数是下面的 file_changed 函数。

问题

  • 为什么第二个 selection_changed 调用不起作用?带有 Action.OPEN 的 FileChooserButton 的行为是否与带有 SELECT_FOLDER 动作的行为不同?
0 投票
1 回答
75 浏览

class - Genie 的只写属性

我从vala 教程中读到它

只读:vala

在精灵中:

只写:Vala:

精灵:[这一行:语法错误]

如何在 Genie 中声明单行 只写属性?也许像什么?

我们可以写一个四行 writeonly 属性:

但是如何编写一行 writeonly 属性?

0 投票
1 回答
107 浏览

init - 结构中的初始化块

我从init Block https://wiki.gnome.org/Projects/Genie#init_Block中读到了这一行

在类或结构之外声明的 init 块相当于 C 中的“main”函数,并且可能只存在其中一个。

也就是说,我们可以在类或结构中声明一个 init 块。

是的!我们可以在课堂上写一个 init 块,但是怎么写呢?

构造工作正常:

当我将构造替换为init时,它不起作用!

如何在struct中编写一个init块?

0 投票
1 回答
126 浏览

gtk - 无法重命名文件,因为:g_file_set_display_name: assertion 'G_IS_FILE (file)' failed

这是练习的一部分。我在 SO 找不到类似的问题。这是一个小 GTK 程序,在单击重命名按钮后,文件应该被重命名。

尽管 uri 似乎指向正确的文件,但由于某种原因,我得到断言 G_IS_FILE 在运行时失败。

这是代码:

问题出现在以下行:_file.set_display_name(_entry.get_text())。我正在寻找一些关于我在这个小精灵代码中做错了什么的见解。

0 投票
1 回答
214 浏览

gtk - 使 Gtk.Scale 具有与 Gtk.Spin 相同的值

我的目标是使刻度中的滑块与旋转中的值同步,反之亦然。我尝试了一些替代方案,但我没有找到一种方法来获取比例尺所在的值,以便我可以设置新的旋转位置。

这个小练习有一个小检查按钮,应该同步两个小部件。我正在尝试通过切换功能进行此同步,但我现在卡住了。

这是到目前为止的代码:

谁能给我一点关于如何解决这个问题的指导?

0 投票
1 回答
236 浏览

gtk - 如何有条件地 bind_property() 两个属性?

我已经有一段时间没有成功解决这个问题了。这是一个练习,其中一个旋转按钮和一个比例在一个检查按钮被勾选时不断同步。但是,当复选按钮未激活时,刻度和旋转都可以自由获取任何值。

在上一个问题,建议使用 bind_property 方法,当您希望旋转和比例始终同步时,这种方法非常有效。但是,当需要将其链接到检查按钮的活动(或缺少活动)时,它不起作用。第二次单击检查按钮时,程序挂起。

这是我已经走了多远:

有没有人建议如何将绑定链接到检查按钮,使其仅在按下时同步?我应该继续尝试寻找任何其他策略来解决问题吗?

谢谢

0 投票
1 回答
81 浏览

genie - 从 Genie 的 init 块中退出并显示错误代码

在 Vala 中,我可以编写以下代码:

我将如何在 Genie 中做同样的事情?以下不起作用:

...因为不允许从 void 块返回值。

0 投票
1 回答
147 浏览

gtk3 - 如何使用 Genie 在 HeaderBar 中打包按钮?

背景

我的目标是改进一个小文本编辑器作为练习。添加 HeaderBar 后它运行良好,但是我找不到在其中打包按钮的方法。

代码

错误

当使用 pack_start(见下文)时,我收到错误:

当我使用 HeaderBar.pack_start 或 button_name.pack_start 时会出现类似的错误。

问题

  1. 我错误地认为应该将 pack_start 与 HeaderBars 一起使用吗?

第二个较小的问题是关于 Stock 图标的使用。由于某种原因,我无法访问 Stock.Open。

最后,关于 HeaderBar 是否还有其他信息来源?Valadoc 在这个主题中很少见(没有示例或模板)。

0 投票
1 回答
67 浏览

gtk - 开关界面在 Genie 中的外观如何?

我正在尝试将对话框添加到带有精灵的小型应用程序中。它是一个打开文件对话框,应在单击标题栏按钮时打开。

Genie 中缺少示例,所以我现在正在尝试从 vala 中改编一些内容。但是,我发现的所有示例都使用了我无法转换为 Genie 的 switch 命令。

这是vala代码:

这就是我从之前的代码中得出的结论:

它显然会在 case 语句中引发错误。如何在精灵中使用开关?