簡體   English   中英

在GTK回調中發送數據

[英]Sending data in a GTK Callback

如何通過GTK回調發送數據? 我已經用Google搜索了,並根據我發現的信息創建了它:

#include <gtk/gtk.h>
#include <stdio.h>
void button_clicked( GtkWidget *widget, GdkEvent *event, gchar *data);

int main( int argc, char *argv[]){
    GtkWidget *window;

    GtkWidget *button;

    gtk_init (&argc, &argv);


    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    button = gtk_button_new_with_label("Go!");


    gtk_container_add(GTK_CONTAINER(window), button);

    g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button_clicked),"test" );

    gtk_widget_show(window);
    gtk_widget_show(button);

    gtk_main();
    return 0;
}

void button_clicked( GtkWidget *widget, GdkEvent *event, gchar *data){
    printf("%s \n", (gchar *) data);
    return;
}

但是當我按下按鈕時,它只是Segfaults。 什么是正確的方法?

發生段錯誤是因為“被單擊”沒有GdkEvent參數。 如果您刪除button_clicked()中的第二個參數,它應該可以工作。

從那里可以輕松瀏覽GTK +和GNOME文檔(包括信號定義)來安裝Devhelp應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM