0

我非常不知道 GTK+Glade3 编程的语法如何。但是现在我正在尝试并制作一个简单的程序,当我单击按钮时会更改文本

void on_CLICK_clicked (GtkButton *button, gpointer user_data)
{
    GtkWidget *text = lookup_widget(GTK_WIDGET(button), "entry1");
    gtk_entry_set_text(GTK_WIDGET(text), "Hello");
}

我有这些令人震惊的错误,我不知道如何解决:

函数'lookup_widget'的隐式声明[这也解释了对'lookup_widget'的未定义引用]

从不兼容的指针类型传递 gtk_entry_set_text' 的参数 1

4

1 回答 1

2

lookup_widget()仅在 Glade 2 生成的代码中使用。Glade 2 用于生成support.c包含该函数和其他函数的文件。这不再使用了。您现在可以clicked在 Glade 3 中连接信号时将 entry 小部件指定为用户数据参数,因此您可以执行以下操作:

void on_CLICK_clicked (GtkButton *button, GtkEntry *text)
{
    gtk_entry_set_text(text, "Hello");
}

第二个警告是由于您转换text为 aGtkWidget *然后将其传递给gtk_entry_set_text()期望 a引起的GtkEntry *。正确的语法应该是GTK_ENTRY(text),但您不再需要这样做了,因为您已经GtkEntry *在我上面编写的代码中有一个指针。

于 2011-02-25T11:11:08.890 回答