在Ubuntu 22.04上的Gtk4(4.6)中,我试图检测单击而忽略双击。但是,当双击发生时,两次非常接近的单击中的第一次被视为单击。我查阅了Gtk4文档,但我不知道如何用简单的方法解决这个问题。
下面是我的尝试:
GtkGesture *controller;
controller = gtk_gesture_click_new ();
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (controller), 0);
gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (controller), TRUE);
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (controller), GTK_PHASE_CAPTURE);
g_signal_connect_after (controller, "released", G_CALLBACK (on_click), myWidget);
gtk_widget_add_controller (GTK_WIDGET (myWidget), GTK_EVENT_CONTROLLER (controller));
1条答案
按热度按时间fzsnzjdm1#
GtkGestureClick
的"released"信号的回调函数有一个n_press
参数,它允许你检查连续点击的次数。换句话说,如果n_press
被设置为2,你正在处理双击。例如,
on_click
函数可能如下所示: