首页 > 解决方案 > 如何在 Gtk 3.24.5 中使用箭头键滚动 ScrolledWindow?

问题描述

我在滚动窗口下方有一个 gtk 条目,它具有默认焦点,左右键在条目中移动光标,我能够捕捉向上和向下箭头键的按键事件,但不知道如何滚动滚动的窗口,引用了许多网站,其中没有一个是清晰的,也没有部分解释。

以下是我浏览的一些页面: https ://mail.gnome.org/archives/gtk-devel-list/2002-February/msg00104.html

https://developer.gnome.org/gtkmm-tutorial/stable/sec-keyboardevents-overview.html.en

尝试使用 gtk_scrolled_window_set_vadjustment() 无法正常工作。官方页面说 GTK_SCROLL_STEP_UP 已被弃用,但没有说明应该使用什么。

每个答案将不胜感激。谢谢

bool MethodSelect::cb_MPWindowKeyPress(GtkWidget *wgt, GdkEventKey *event, MethodSelect *ms)
{
    if(event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down)
    {  
    // METH_SEL_INFO_DEBUG("%s",gdk_keyval_name (event->keyval));
        g_signal_emit_by_name(ms->ScrolledWindow, "scroll-child",(event->keyval == GDK_KEY_Up)?GTK_SCROLL_STEP_UP:GTK_SCROLL_STEP_DOWN);
//The above line works in gtk 3.14.5 but crashes the app in 3.24.5 
        return TRUE;
    }

    return FALSE;
}

标签: cgtkgtk3gdkgtkscrolledwindow

解决方案


推荐阅读