按按钮更改 window 标题不起作用
Changing window title on button press does not work
我正在使用带有 glade 和 gtk+ 的 anjuta。
我正在尝试在我的应用程序中获取更改 window 标题的按钮:
void changetitle(GtkWidget *win)
{
gtk_window_set_title(GTK_WINDOW(win),"My Window");
FILE *fh = fopen("/tmp/output.txt", "w");
fclose(fh);
}
我正在尝试获取执行此操作的按钮,但我似乎无法将 window 作为参数传递。
这是我尝试过的方法:
第二个功能(创建文件)似乎有效。
The “clicked”
signal
void
user_function (GtkButton *button,
gpointer user_data)
这意味着,当调用回调函数时,传递给它的第一个参数将是按钮,而不是 window。
要解决此问题,您有两种选择:
您可以将 changetitle
更改为以下内容:
void changetitle(GtkButton *button, gpointer win) { //...
或(即不要两者一起做),在Glade中连接信号时,勾选"swap"框:
通过这样做,参数的顺序将被交换,因此第一个参数将是您指定的数据(即 window),第二个参数(未在您的回调中指定功能,因此无关紧要)将是您的按钮。
我正在使用带有 glade 和 gtk+ 的 anjuta。
我正在尝试在我的应用程序中获取更改 window 标题的按钮:
void changetitle(GtkWidget *win)
{
gtk_window_set_title(GTK_WINDOW(win),"My Window");
FILE *fh = fopen("/tmp/output.txt", "w");
fclose(fh);
}
我正在尝试获取执行此操作的按钮,但我似乎无法将 window 作为参数传递。
这是我尝试过的方法:
第二个功能(创建文件)似乎有效。
The
“clicked”
signalvoid user_function (GtkButton *button, gpointer user_data)
这意味着,当调用回调函数时,传递给它的第一个参数将是按钮,而不是 window。
要解决此问题,您有两种选择:
您可以将 changetitle
更改为以下内容:
void changetitle(GtkButton *button, gpointer win) { //...
或(即不要两者一起做),在Glade中连接信号时,勾选"swap"框:
通过这样做,参数的顺序将被交换,因此第一个参数将是您指定的数据(即 window),第二个参数(未在您的回调中指定功能,因此无关紧要)将是您的按钮。