g_signal_connect用于鼠标右键单击?

use*_*070 3 c gtk

我得到了这个代码,用于鼠标左键单击按钮,但我将如何使用鼠标右键单击信号:

g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button-action), NULL);
Run Code Online (Sandbox Code Playgroud)

Eli*_*gem 6

一种简单的方法来监听任何鼠标点击,无论是向左还是向右,都是这样的:

g_signal_connect(
    G_OBJECT(button)
    "button-press-event",
    G_CALLBACK(btn_press_callback),
    NULL
);
Run Code Online (Sandbox Code Playgroud)

然后,对于回调函数:

gboolean btn_press_callback(GtkWidget *btn, GdkEventButton *event, gpointer userdata)
{
    if (event->type == GDK_BUTTON_PRESS  &&  event->button == 3)
    {//3 is right mouse btn
        //do stuff
        return true;//or false
    }
    if (event->type == GDK_BUTTON_PRESS  &&  event->button == 1)
    {//1 is left mouse btn
    }
}
Run Code Online (Sandbox Code Playgroud)

等等... 更多信息在这里.

一些例子,使用GTK + -2但仍然有用,可以在这里找到.