Подключение к scroll_event в Вала - PullRequest
0 голосов
/ 07 мая 2011

Я пытался подключиться к scroll_event виджета TextView.Я могу подключить к нему лямбду, а затем запустить свой метод, но я бы хотел понять, почему прямое подключение не работает.Я использовал код ниже

using Gtk;

public class TextFileViewer : Gtk.Window {

    private TextView text_view;

    public TextFileViewer () {
        this.title = "Text File Viewer";
        this.position = WindowPosition.CENTER;
        set_default_size (400, 300);

        this.text_view = new TextView ();
        this.text_view.editable = true;
        this.text_view.cursor_visible = true;

        var scroll = new ScrolledWindow (null, null);
        scroll.set_policy (PolicyType.AUTOMATIC, PolicyType.AUTOMATIC);
    scroll.add (this.text_view);

        this.text_view.scroll_event.connect (on_scroll_event);

        var vbox = new VBox (true, 0);
        vbox.pack_start (this.text_view, true, true, 0);
        add (vbox);
    }

    private void on_scroll_event () {
            stderr.printf("We scrollin breds");
    }

    public static int main (string[] args) {
        Gtk.init (ref args);

        var window = new TextFileViewer ();
        window.destroy.connect (Gtk.main_quit);
        window.show_all ();

        Gtk.main ();
        return 0;
    }
}

Этот код выдает мне ошибку:

gtkviewer.vala:20.46-20.60: error: Argument 1: Cannot convert from `TextFileViewer.on_scroll_event' to `Gtk.Widget.scroll_event'
    scroll.scroll_event.connect (on_scroll_event);

vala в версии 0.12.0

1 Ответ

0 голосов
/ 08 мая 2011

Проверьте аргументы сигнала scroll-event :

публичный виртуальный сигнал bool scroll_event (событие Gdk.EventScroll);

private bool on_scroll_event (Gdk.EventScroll e) {
        stderr.printf("We scrollin breds");
        return true;
}
...