QT开发中文网

gtk button-press-event 回调函数原型

在 GTK 中,处理 button-press-event 的回调函数通常具有以下原型:

gboolean on_button_press_event(GtkWidget *widget, GdkEventButton *event);

参数说明

  1. GtkWidget *widget:

    • 触发事件的 GTK 窗口小部件(如按钮、绘图区等)。你可以使用这个指针来获取小部件的属性或执行其他操作。
  2. GdkEventButton *event:

    • 指向 GdkEventButton 结构体的指针,包含关于按钮按下事件的详细信息,如鼠标位置、被按下的按钮编号等。

返回值

  • gboolean:
    • 如果返回 TRUE,表示该事件已经被处理,不会继续传播;如果返回 FALSE,则表示未处理该事件,系统将继续向其他事件处理程序传播此事件。

示例代码

下面是一个简单示例,展示了如何设置和实现这个回调函数:

#include <gtk/gtk.h>

gboolean on_button_press_event(GtkWidget *widget, GdkEventButton *event) {
    if (event->type == GDK_BUTTON_PRESS) {
        g_print("Button pressed: %d at (%f, %f)\n", event->button, event->x, event->y);
        return TRUE; // 表示已处理该事件
    }
    return FALSE; // 未处理该事件
}

int main(int argc, char *argv[]) {
    gtk_init(&argc, &argv);

    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    // 连接 button-press-event 信号
    g_signal_connect(window, "button-press-event", G_CALLBACK(on_button_press_event), NULL);

    gtk_widget_show_all(window);
    
    gtk_main();
    
    return 0;
}

在这个示例中,我们创建了一个基本的 GTK 窗口,并连接了 button-press-event 信号到我们的回调函数。在按下鼠标时,它将输出按下按钮的信息。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 参数说明
  • 返回值
  • 示例代码
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=12607

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?