Я все еще пытаюсь выучить Вала, и у меня проблема с сигналами GtkButton.
Я хочу подключить функцию void refresh ()
к GtkButton. Когда кнопка нажата, функция должна быть вызвана и установить метку GtkLabel. Поэтому я пишу GtkButton.clicked.connect (this.function);
. Это должно вызвать функцию, когда я нажимаю на кнопку, верно?
Моя функция очень проста для тестирования и должна изменять текст GtkLabel. Итак, я получаю void function () { GtkLabel.label = "New Text"; }
.
Когда я тестирую эту маленькую программу, нажатие на кнопку ничего не делает или, по крайней мере, я ничего не вижу.
Чего мне не хватает?
Вот мой код:
namespace Zeiterfassunggtk {
[GtkTemplate (ui = "/org/gnome/Zeiterfassunggtk/window.ui")]
public class Window : Gtk.ApplicationWindow {
[GtkChild]
Gtk.Button refreshbutton;
Gtk.Button menubuttonrefresh;
void refresh () {
label1.label = "Clicked";
}
public Window (Gtk.Application app) {
Object (application: app);
refreshbutton.clicked.connect (this.refresh);
menubuttonrefresh.clicked.connect (this.refresh);
this.show_all ();
}
}
}
Вы можете посмотреть полный код на github.com