【问题标题】:event.key.keyval signal not connectingevent.key.keyval 信号未连接
【发布时间】:2021-04-25 16:13:12
【问题描述】:
public class Epoch.CitiesChooser : Gtk.MenuButton {
    private Epoch.CitiesSearch cities_search;
    
    construct {
        var button_grid = new Gtk.Grid ();
        button_grid.column_spacing = 6;
        var button_label = new Gtk.Label ("Dimapur");
        button_grid.add (button_label);
        button_grid.add (new Gtk.Image.from_icon_name ("pan-down-symbolic", Gtk.IconSize.MENU));
        add (button_grid);
        
        cities_search = new Epoch.CitiesSearch ();
        cities_search.show_all ();
        
        /* Use a event.eventkey.keypress here to add update the label of the menu_button using set_text */
        if (cities_search.location_entry.visible) {
            key_press_event.connect ((event) => {
                stdout.printf ("Keyval: 0x%X\n", event.key.keyval);
                if (event.key.keyval == 0xFF57) {
                    button_label.set_text (cities_search.location_entry.get_text ());
                    cities_search.location_entry.hide ();
                }
                return false;
            });
        }
        
        popover = new Gtk.Popover (this);
        popover.width_request = 310;
        popover.add (cities_search);
    }
}

我想在键盘上按下“结束”键时更新menu_button 的标签。

代码编译没有错误,但信号未连接,stdout.printf ("Keyval: 0x%X\n", event.key.keyval); 不打印任何内容。

标签也没有更新。

【问题讨论】:

    标签: gtk vala


    【解决方案1】:

    我从 vala discord 服务器的一个了不起的人那里得到了这个答案

    由于 Gtk.LocationEntry 是 Gtk.Entry 的子类,所以我们可以使用激活信号。

    然后我用这段代码更新标签

    cities_search.location_entry.activate.connect ((obj) => {
                button_label.set_text (cities_search.location_entry.get_text ());
                if (this.get_active ()) {
                    this.set_active (false);
                }
            });
    

    它实现了我的目的,但它不是原始问题的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多