QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1027|回复: 6

几个GTK+的应用问题

[复制链接]
发表于 2005-10-12 13:37:03 | 显示全部楼层 |阅读模式
1.在clist这个控件中,怎样实现双击鼠标,右键点击啊,我只知道
有“select_row"这个。
2。GTK这个东西的机制怎样的啊,gtk_main()函数后,是不是一直
在等待监听鼠标,键盘的响应啊。
3。如何实现右键菜单的功能啊,用什么函数。
4。gtk和gnome是不是可以同时在一个程序里使用?

谢谢。
发表于 2005-10-12 15:26:37 | 显示全部楼层
1.任何gtk空间都支持鼠标点击事件,自己判断一下点击间隔就能组成双击了。
2.不单是键盘鼠标,所有能处理的事件。
3.在鼠标点击事件处理函数里把菜单显示出来。
4.可以,考虑移植性,不要用gnome接口。
回复

使用道具 举报

 楼主| 发表于 2005-10-12 20:24:53 | 显示全部楼层
嗯,谢谢,大致明白了,不过我还有个问题
1。右键的菜单怎么样判断是右键啊,我只是知道有“clicked”这个
2。popup型窗口有么,是不是那个新建window那个函数把TOPLEVEL改成POPUP型的就是啊。
回复

使用道具 举报

发表于 2005-10-12 20:34:22 | 显示全部楼层
不是clicked,是button_pressed或者button_released,从回调函数的参数可以判断是左键还是右键。
popup型窗口有什么?
回复

使用道具 举报

 楼主| 发表于 2005-10-12 20:46:38 | 显示全部楼层
不是很明白怎么用,没有见过。
g_signal_connect的最后一个参数是传给回调函数做参数的吧,这个参数不是自己想传什么都可以的么
回复

使用道具 举报

发表于 2005-10-12 21:17:26 | 显示全部楼层
[code:1]
on_button_pressed(GtkWidget *widget, GdkEventButton *event, gpointer data)
{
}
[/code:1]


假设上面是button_pressed事件回调函数,从第二个参数可以判断按左键还是右键。第三个参数才是用户传进来的参数。

下面是GdkEventButton的定义,在gdktypes.h可以找到。
[code:1]
typedef struct _GdkEventButton            GdkEventButton;
struct _GdkEventButton
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble pressure;
  gdouble xtilt;
  gdouble ytilt;
  guint state;
  guint button;
  GdkInputSource source;
  guint32 deviceid;
  gdouble x_root, y_root;
};
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-10-13 17:22:27 | 显示全部楼层
谢谢斑竹,有了方向了就好说,虽然不是很懂。好好看看GDB :-)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 02:05 , Processed in 0.048942 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表