二、GTK4——Vala运行
-
使用
Vala
,其实调用的是gtk4.vapi
–>libgrk4.so
。(VAPI 文件包含了一个库的接口描述信息) -
Gtk-4.0.typelib
影响的是gtk4.vapi
的生成。(gtk4.vapi提前就会生成好,不会在编译程序的时候再生成)
1 Vala
Vala 是一种编程语言,专为 GNOME 项目设计,旨在提供一种高效且便于开发者使用的编程体验。Vala 的语法类似于 C#,但它会编译为 C 代码,因此可以利用现有的 C 语言库。
-
专门为GNOME项目开发设计的高级语言,本身与
GObject
集成。 -
vapigen
工具用于从GIR(GObject Introspection Repository)
文件生成 VAPI 文件。vapigen
通常由发行版随valac
(这是vala语言的编译器)一起提供,或者作为一个单独的 Vala 工具/开发包提供。 -
可以在
/usr/share/vala-0.56/vapi/
目录,查看已经安装的.vapi
文件。
1.1 vapi文件
libhandy:
meson_options
中会有 vapi
编译选项 ,是否生成 .vapi
文件。
libadwaita:
2 使用Vala编译Gtk4窗口
/* compile conmmad: valac --pkg gtk4 window.vala */
using Gtk;
int main (string[] argv) {
// Create a new application
var app = new Gtk.Application ("com.example.GtkApplication", GLib.ApplicationFlags.DEFAULT_FLAGS);
app.activate.connect (() => {
var window = new Gtk.ApplicationWindow (app);
var button = new Gtk.Button.with_label ("Hello, World!");
button.clicked.connect (() => {
window.close ();
});
window.set_child (button);
window.present ();
});
return app.run (argv);
}