使用 GTK+3 学习 GUI 编程

Learning GUI programming with GTK+3

我是 GUI 编程的新手。我最近在 Linux 上安装了 Gtk+3 版本。但是,当我输入以下代码时:

#include <gtk/gtk.h>
#include <stdio.h>
static int count = 0;
void button_clicked(GtkWidget *button, gpointer data)
{
printf(“%s pressed %d time(s) \n”, (char *) data, ++count);
}
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(“Hello World!”);
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (button_clicked),
“Button 1”);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main ();
return 0;
}

为了运行这段代码我使用了这个命令:$ gcc gtk1.c –o gtk1 pkg-config --cflags --libs gtk+-3.0

但我有这样的错误

undefined reference to GTK_OBJECT;
undefined reference to GTK_SIGNAL_FUNC;

这是因为您的代码示例适用于旧版本的 GTK+ 2。GTK_OBJECT 在后期的 GTK+ 2.x 版本中已弃用,并最终在 GTK+ 3 中删除。[=11 也是如此=].两者都已移至 GObject 库,现在它们分别为 G_OBJECTG_CALLBACK.

为避免使用过时的代码,请从 code samples from the GTK+ 3 documentation 开始。