g_signal_connect for right mouse click?

霸气de小男生 提交于 2020-01-02 06:52:19

问题


I got this code that works for the left mouse click on a button but how would I use to get the right mouse click signal:

g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button-action), NULL);

回答1:


A simple way to listen for any mouse clicks, be it left or right would be this:

g_signal_connect(
    G_OBJECT(button)
    "button-press-event",
    G_CALLBACK(btn_press_callback),
    NULL
);

Then, for the callback function:

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
    }
}

And so on... More info here.

some examples, using GTK+-2 but still useful, can be found here.



来源:https://stackoverflow.com/questions/23516968/g-signal-connect-for-right-mouse-click

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!