如何在另一个 class 中访问 Gtk.Window?

How to access Gtk.Window in another class?

这是 window 的构造方式:

namespace App {

    public class Window : Gtk.ApplicationWindow {
        
        private Granite.ModeSwitch stick_switch; 
        
        public Window (Gtk.Application app) {
            Object (
                application: app,
                icon_name: Constants.APP_ICON,
                resizable: false
            );
// There is more code below this

我想在另一个 class 中访问此 window。我该怎么做?

当我在另一个 class 的构造函数中使用此初始化它时:var main_window = new App.Window ();,显示一条错误消息,指出它缺少参数。

我需要提供什么以及如何提供参数?

您必须将 Gtk.Application 传递给构造函数:

var main_window = new App.Window(new Gtk.Application("foo.your.app.name", Gtk.ApplicationFlags.FLAGS_NONE);

“foo.your.app.name”是应用程序 ID。

Gtk.Application标志。FLAGS_NONE 是一些标志,用于指定应用程序的行为 link,例如此应用程序是服务还是启动器,....