Удалось заставить это работать. Вот код на случай, если это понадобится другим:

бираюсь через учебник Vala GTK + 3, предоставленный Elementary OS. Я понимаю, что этот код:

var button_hello = new Gtk.Button.with_label ("Click me!");
button_hello.clicked.connect (() => {
    button_hello.label = "Hello World!";
    button_hello.set_sensitive (false);
});

использует лямбда-функцию для изменения метки кнопки при нажатии. Я хочу вместо этого вызвать эту функцию:

void clicked_button(Gtk.Button sender) {
    sender.label = "Clicked. Yippee!";
    sender.set_sensitive(false);
}

Я пробовал это:

button.clicked.connect(clicked_button(button));

Но я получаю эту ошибку от компиляции Vala, когда пытаюсь скомпилировать:

hello-packaging.vala:16.25-16.46: error: invocation of void method not allowed as expression
    button.clicked.connect(clicked_button(button));
                           ^^^^^^^^^^^^^^^^^^^^^^
Compilation failed: 1 error(s), 0 warning(s)

Я новичок и в Vala, и в Linux, поэтому, пожалуйста, будьте осторожны, но кто-то может указать мне правильное направление?

Ответы на вопрос(2)

Ваш ответ на вопрос