g_signal_connect为单击鼠标右键? [英] g_signal_connect for right mouse click?
本文介绍了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屋!
查看全文