问题标签 [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.
genie - Genie 中的课程
我正在尝试在 Genie 中复制 Python 的Verbal Expression库作为学习如何使用类的练习。我有一些简单的类,就像教程中列出的那些,但是当涉及到以面向对象的方式实例化方法时,我遇到了问题。这是我正在尝试的:
出于培训目的,我想要一个名为 add 的方法,其行为与 string.concat() 相同。
但我得到了错误:
当我使用不同的方法时,例如:
我在上述文本的最后一行收到错误,并发出警告:
我希望能够使 test.add(sec) 的行为与 test.concat(sec) 相同,我该怎么做才能做到这一点?
gtk - FileChooserButton 行为
当我将 selection_changed 连接到 FileChooserButton 中的函数时,我遇到了一个奇怪的行为。在SO用户的帮助下, 我现在了解了 selection_changed 语法。但是当我在同一个程序中第二次使用它时,发生了一些奇怪的事情。
语境
我的目标是创建一个窗口,其中包含两个 FileChooserButtons 和一个位于窗口末尾位置的 Entry 文本。第一个 FileChooserButton 帮助用户选择目录并使第二个 FileChooserButton 在用户在第一个中选择的目录中打开。到目前为止,代码运行良好。该条目也被正确绘制并显示“文件名在这里”。预期的行为是在检查文件是否可写后,在第二个 FileChooserButton 中选择文件名时更改条目的文本。
我使用的策略是将 selection_changed 连接到一个函数,该函数负责检查文件是否可写以及条目文本的更改。
问题是该函数从未被调用。我添加了一个调试愚蠢的代码,如:
它永远不会被打印出来,因此我想这个函数永远不会被调用。有问题的函数是下面的 file_changed 函数。
问题
- 为什么第二个 selection_changed 调用不起作用?带有 Action.OPEN 的 FileChooserButton 的行为是否与带有 SELECT_FOLDER 动作的行为不同?
class - Genie 的只写属性
只读:vala
在精灵中:
只写:Vala:
精灵:[这一行:语法错误]
如何在 Genie 中声明单行 只写属性?也许像什么?
我们可以写一个四行 writeonly 属性:
但是如何编写一行 writeonly 属性?
init - 结构中的初始化块
我从init Block https://wiki.gnome.org/Projects/Genie#init_Block中读到了这一行
在类或结构之外声明的 init 块相当于 C 中的“main”函数,并且可能只存在其中一个。
也就是说,我们可以在类或结构中声明一个 init 块。
是的!我们可以在课堂上写一个 init 块,但是怎么写呢?
构造工作正常:
当我将构造替换为init时,它不起作用!
如何在struct中编写一个init块?
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())
。我正在寻找一些关于我在这个小精灵代码中做错了什么的见解。
gtk - 使 Gtk.Scale 具有与 Gtk.Spin 相同的值
我的目标是使刻度中的滑块与旋转中的值同步,反之亦然。我尝试了一些替代方案,但我没有找到一种方法来获取比例尺所在的值,以便我可以设置新的旋转位置。
这个小练习有一个小检查按钮,应该同步两个小部件。我正在尝试通过切换功能进行此同步,但我现在卡住了。
这是到目前为止的代码:
谁能给我一点关于如何解决这个问题的指导?
gtk - 如何有条件地 bind_property() 两个属性?
我已经有一段时间没有成功解决这个问题了。这是一个练习,其中一个旋转按钮和一个比例在一个检查按钮被勾选时不断同步。但是,当复选按钮未激活时,刻度和旋转都可以自由获取任何值。
在上一个问题中,建议使用 bind_property 方法,当您希望旋转和比例始终同步时,这种方法非常有效。但是,当需要将其链接到检查按钮的活动(或缺少活动)时,它不起作用。第二次单击检查按钮时,程序挂起。
这是我已经走了多远:
有没有人建议如何将绑定链接到检查按钮,使其仅在按下时同步?我应该继续尝试寻找任何其他策略来解决问题吗?
谢谢
genie - 从 Genie 的 init 块中退出并显示错误代码
在 Vala 中,我可以编写以下代码:
我将如何在 Genie 中做同样的事情?以下不起作用:
...因为不允许从 void 块返回值。
gtk3 - 如何使用 Genie 在 HeaderBar 中打包按钮?
背景
我的目标是改进一个小文本编辑器作为练习。添加 HeaderBar 后它运行良好,但是我找不到在其中打包按钮的方法。
代码
错误
当使用 pack_start(见下文)时,我收到错误:
当我使用 HeaderBar.pack_start 或 button_name.pack_start 时会出现类似的错误。
问题
- 我错误地认为应该将 pack_start 与 HeaderBars 一起使用吗?
第二个较小的问题是关于 Stock 图标的使用。由于某种原因,我无法访问 Stock.Open。
最后,关于 HeaderBar 是否还有其他信息来源?Valadoc 在这个主题中很少见(没有示例或模板)。
gtk - 开关界面在 Genie 中的外观如何?
我正在尝试将对话框添加到带有精灵的小型应用程序中。它是一个打开文件对话框,应在单击标题栏按钮时打开。
Genie 中缺少示例,所以我现在正在尝试从 vala 中改编一些内容。但是,我发现的所有示例都使用了我无法转换为 Genie 的 switch 命令。
这是vala代码:
这就是我从之前的代码中得出的结论:
它显然会在 case 语句中引发错误。如何在精灵中使用开关?