gtk+ 鼠标进入离开按钮信号

<span style="font-size:18px;">#include<stdio.h>
#include<gtk/gtk.h>
void enter_button(GtkWidget *widget, gpointer data)
{
	g_print("enter button\n");
}
void leave_button(GtkWidget *widget, gpointer data)
{
	g_print("leave button\n");
}
int main(int argc, char* argv[])
{
	GtkWidget *window;
	GtkWidget *fixed;
	GtkWidget *button;

	gtk_init(&argc, &argv);

	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
	gtk_window_set_default_size(GTK_WINDOW(window), 250,200);
	gtk_window_set_title(GTK_WINDOW(window), "GtkFixed");

	fixed = gtk_fixed_new();
	gtk_container_add(GTK_CONTAINER(window), fixed);

	button = gtk_button_new_with_label("Button");
	gtk_fixed_put(GTK_FIXED(fixed), button, 150, 50);
	gtk_widget_set_size_request(button, 80, 35);
	
	g_signal_connect_swapped(GTK_WINDOW(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
	g_signal_connect(GTK_BUTTON(button), "enter", G_CALLBACK(enter_button), NULL);
	g_signal_connect(GTK_BUTTON(button), "leave", G_CALLBACK(leave_button), NULL);
	gtk_widget_show_all(window);
	gtk_main();
	return 0;
}
</span>

网上有人这样问:toolbar上的button这种方法不能用

网上的人这样回答:

你可以将BUTTON放到GtkEventBox中,然后将EVENTBOX放入TOOLBAR,这样处理EVENTBOX的motion-notify-event就可以了

//鼠标移入和移出处理函数
static gboolean banner_image_motion_notify_handler(GtkWidget *widget,GdkEventMotion *event,gpointer data)
{
//鼠标移入
if(event->type == GDK_ENTER_NOTIFY){ //进入缩略图的话就要取消掉autohide临时线程
banner_cancel_autohide();
//鼠标移出控件
} else if(event->type == GDK_LEAVE_NOTIFY){ //又需要重新开启autohide线程
banner_autohide_tip_window();
}

return FALSE;//不需要再处理了
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值