g_signal_connect为单击鼠标右键? [英] g_signal_connect for right mouse click?

查看:631
本文介绍了g_signal_connect为单击鼠标右键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到这个code,对于在按钮上点击鼠标左键的作品,但我怎么会用得到正确的鼠标点击信号:

  g_signal_connect(G_OBJECT(按钮),点击,G_CALLBACK(按钮动作),NULL);


解决方案

一个简单的方法来聆听的任何的鼠标点击,无论是向左或向右会是这样的:

  g_signal_connect(
    G_OBJECT(按钮)
    按钮 - preSS-事件
    G_CALLBACK(btn_ press_callback)
    空值
);

然后,回调函数:

  gboolean btn_ press_callback(* GtkWidget的BTN,GdkEventButton *事件,gpointer用户数据)
{
    如果(事件 - >类型== GDK_BUTTON_ $ P $干燥综合征和放大器;&安培;事件 - >按钮== 3)
    {// 3是鼠标右BTN
        //做东西
        返回true; //或false
    }
    如果(事件 - >类型== GDK_BUTTON_ $ P $干燥综合征和放大器;&安培;事件 - >按钮== 1)
    {// 1是鼠标左键BTN
    }
}

等等...... 更多这里的信息的。

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

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);

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.

这篇关于g_signal_connect为单击鼠标右键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆