使用GTK + 3学习GUI编程

时间:2019-02-11 11:40:40

标签: gtk

我是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;

1 个答案:

答案 0 :(得分:0)

这是因为您的代码示例适用于GTK + 2的旧版本。this.$scope.$watch(() => { return this.$state.current.name }, (oldVal, newVal) => { console.log(oldVal, newVal); console.log(this.$state.current.name; }); 在GTK + 2.x的较晚版本中已弃用,最后在GTK + 3中删除。与GTK_OBJECT相同。两者都已移至GObject库,现在分别以GTK_SIGNAL_FUNCG_OBJECT的形式出现。

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