小编Asy*_*abs的帖子

Vala与Genie的关系

根据我的阅读,核心Gnome开发始于C,Vala(2006)和Genie(2008)对此进行了扩展.Vala语法似乎针对Java/C#语法/开发人员,而Genie似乎针对Python(以及其他一些).

还有一些开发人员似乎试图破坏这两个伟大的开发工具 - 通过推动转向,因为缺乏更好的术语,非本地技术,如Javascript和Rust - 需要额外的虚拟机或运行时二进制文件.

然而,Vala的复兴似乎主要由应用程序开发人员推动.从Vala编译器活动的增加和2018年外展计划的拟议活动中可以看出这一点,其中Vala是核心功能.

因此,这将我们带到与Genie的技术关系.从我的阅读来看,Genie只依赖于GLib,而Vala依赖于Gnome桌面环境.这种关系是否正确?其次,Genie内置于Vala编译器中valac还是分开?从汇编的角度来看,它们是集成技术吗?

gnome vala genie

6
推荐指数
1
解决办法
279
查看次数

Flatpak Meson 没有从 Gnome Builder 中找到 Vala 库

在 Linux 中,我在 Gnome Builder (3.26.4) 中使用 Meson (0.44.0) 作为将使用 Gee 和 GXml 的控制台程序。我的目的是在 Genie 中写这个。

当我在 Gnome Builder 中使用 Meson 时,它会失败,但使用 valac (0.38.8) 从命令行调用时会成功,如下所示:

valac --pkg=gtk+-3.0 --pkg=gee-0.8 --pkg=gxml-0.16 main.gs
Run Code Online (Sandbox Code Playgroud)

从上面看没有错误。我尝试使用 gee 和 gxml 设置 meson.build 作为依赖项,或者作为vala_args。同样的错误。

检查 pkg-config,我得到以下信息:

$ pkg-config --libs gxml-0.16
-L/usr/local/lib64 -lgxml-0.16 -lgio-2.0 -lxml2 -lgee-0.8 -lgobject-2.0 -lglib-2.0
$ pkg-config --libs gee-0.8
-lgee-0.8 -lgobject-2.0 -lglib-2.0
$ pkg-config --libs gee-1.0
-lgee -lgobject-2.0 -lglib-2.0
Run Code Online (Sandbox Code Playgroud)

也许我做错了什么。这是本地 meson.build 文件,后跟顶级 meson.build 和错误:

example_sources = [
  'main.gs'
]

example_deps …
Run Code Online (Sandbox Code Playgroud)

vala genie meson-build flatpak gnome-builder

5
推荐指数
1
解决办法
2942
查看次数

UI xml文件中的Gtk HeaderBar ActionBar pack_start pack_end

我们正在尝试使用Gnome-Builder/Meson/Glade/Flatpak开发应用程序用户界面Gtk3/Vala/Genie.虽然有许多例子 Gtk.HeaderBar.pack_start( ... ),并Gtk.ActionBar.pack_start( ... )在瓦拉和其他基于GTK文档中,我们一直没能找到一个XML文件的用户界面中使用的例子.

所以问题是:如何将pack_start/pack_end与ui xml文件一起使用?是否有生成的xml ui文件的示例或如何在Glade中生成?它会作为HeaderBar/ActionBar的属性/属性/子项输入吗?这会是什么样的 - 一般结构是什么?如果它不是a GtkChild,那么如何在Vala/Genie源文件中访问它?

提供以下琐碎的XML文件MainApplication.ui,例如,如何将一个pack_startpack_endGtkColorButtonGtkHeaderBar

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.2 -->
<interface>
  <requires lib="gtk+" version="3.20"/>
  <template class="MainWindow" parent="GtkApplicationWindow">
    <property name="can_focus">False</property>
    <property name="default_width">1024</property>
    <property name="default_height">768</property>
    <child type="titlebar">
      <object class="GtkHeaderBar" id="header_bar">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="title">Test Application</property>
        <property name="subtitle">gnome.org</property>
        <property name="show_close_button">True</property>
      </object>
    </child>
    <child>
      <object class="GtkBox" id="content_box">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <child>
          <placeholder/>
        </child> …
Run Code Online (Sandbox Code Playgroud)

glade vala genie gtk3 gnome-3

4
推荐指数
2
解决办法
471
查看次数

vala精灵释放记忆

我的理解是Vala和Genie有引用计数而不是垃圾收集.

Per Valadoc.org,这个:

string path = Path.build_filename ("my", "full", "path/to.txt");
Run Code Online (Sandbox Code Playgroud)

得出这个:

a newly-allocated string that must be freed with g_free
Run Code Online (Sandbox Code Playgroud)

这是正确的还是g_free由于引用计数而不是必需的?

如果string是在对象内包裹将g_freestring上物件破坏付诸行动?

gnome glib vala genie

1
推荐指数
1
解决办法
118
查看次数

Glade作为GTK3/4/5的起点(而不是Gnome-Builder)

现在已经花了一些时间来掌握Gnome Builder,Glade,Vala和Genie - 并考虑到优秀的Gnome人机界面指南(GHIG) - 为什么Glade不是几乎所有GTK GUI应用程序的起点?

例如,是否有任何程序将采用Glade(模板)xml文件并自动生成相应的程序化Vala或Genie源代码?如果有标准的Gtk.ApplicationWindow Glade xml文件,例如,随Glade/Gnome附带的GHIG,这些文件可以快速适应特定项目和带有信号自动生成的Genie类模板 - 加上完整的gresource/meson/flatpak结构.这只是直接导入Gnome-Builder作为起点.有这样的事吗?

更新

以下文件application.gs是使用Genie属性组合从application.ui自动生成的.不想在这里重新发明轮子 - 因此这个问题的原因.以下删除了一些字段,但实际文件已完全填写并可以使用.除了'application.ui'的内容之外,唯一需要的信息是资源路径和ui文件名.一切都已包含在Glade文件中.

/*
  {PROJECT_SPACE}

  '{PROJECT_NAME}' is a command line tool that will parse a glade ui
  template and generate a skeleton class in the Genie language
  with composite widgets. It will generate GTKTemplate, GTKChild
  and GTKCallback entries.

  '{PROJECT_NAME}' exists within the {PROJECT_NAMESPACE} namespace.

  Copyright (C) 2018 {AUTHOR_NAME} {AUTHOR_EMAIL}

  This library is free software; you can redistribute it and or
  or modify it …
Run Code Online (Sandbox Code Playgroud)

gtk gnome glade gtk3

1
推荐指数
1
解决办法
508
查看次数

标签 统计

genie ×4

vala ×4

gnome ×3

glade ×2

gtk3 ×2

flatpak ×1

glib ×1

gnome-3 ×1

gnome-builder ×1

gtk ×1

meson-build ×1