我正在使用anjuta和glade以及gtk +。
我正试图让我的应用程序中的按钮更改窗口标题:
void changetitle(GtkWidget *win)
{
gtk_window_set_title(GTK_WINDOW(win),"My Window");
FILE *fh = fopen("/tmp/output.txt", "w");
fclose(fh);
}
我正试图让按钮执行此操作,但我似乎没有将窗口作为参数传递。
这是我尝试过的:
第二个功能(创建文件)似乎有效。
答案 0 :(得分:1)
Artist
信号“clicked”
这意味着,当调用回调函数时,传递给它的第一个参数将是按钮,而不是窗口。
要解决此问题,您有两种选择:
您可以将void
user_function (GtkButton *button,
gpointer user_data)
更改为以下内容:
changetitle
或(即不要同时进行),在连接信号时在Glade中,选中“交换”框:
通过这样做,参数的顺序将被交换,因此第一个参数将是您指定的数据(即窗口),第二个参数(在您的回调函数中未指定,因此无关紧要) )将是你的按钮。