2

我正在使用 C 语言开发文件浏览器小程序的孙子。

我的问题是我找不到在菜单中使用鼠标滚轮加速滚动的解决方案。在我的情况下,每次鼠标滚轮点击只移动 1/2 个条目,我想要的是 5 个条目。

编码:

  eintrag->menu = gtk_menu_new() ;
  gtk_signal_connect(GTK_OBJECT (eintrag->menu),"scroll-event",(GtkSignalFunc) scroll_test,NULL) ;

  if ( (n = scandir(parent->full_name,&dir_list,0,alphasort)) > 0 )
     {
     for ( i = 0 ; i < n ; i++ )
        {
        eintrag->item = gtk_image_menu_item_new_with_label(eintrag->filename) ;
        ,,,,
        }
     }

  ------------------------------------------------------------------------------------
  gboolean scroll_test(GtkWidget *widget,GdkEventScroll *event,void *nix) 
     {
     g_print("scroll %s %d %d \n",name,event->send_event,event->direction ;
     return FALSE ;
     }

该代码是一个非常简单的 GTK 菜单,附带一个“scroll.event”。

第一次尝试是在 scroll_test CB 内发出一个额外的滚动事件。通过使用 g_signal_emit_by_name(widget,"scroll-event",widget,event,NULL),即使我设置了一个带有新时间戳的新事件结构并将 ->send_event 设置为 TRUE,结果也会令人困惑。也许我在这里有一个 Parms 错误。

第二个尝试是创建一个 gtk_adjustment_new,使用 gtk_widget_set_scroll_adjustments 将其附加到菜单并更改 gtk_adjustment_set_step_increment。没变。

4

0 回答 0