<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;//不需要再处理了
}