Glade3 C Кнопки программирования - PullRequest
0 голосов
/ 25 февраля 2011

Я очень не знаю, как работает синтаксис для программирования на 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']

передача аргумента 1 gtk_entry_set_text 'из несовместимого типа указателя

1 Ответ

2 голосов
/ 25 февраля 2011

lookup_widget() использовался только в сгенерированном коде Glade 2. Glade 2 использовался для создания файла support.c, который содержал эту и другие функции. Это больше не используется. Теперь вы можете указать виджет ввода в качестве параметра пользовательских данных при подключении сигнала clicked в Glade 3, так что вы можете делать следующее:

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

Второе предупреждение было вызвано тем, что вы навели text на GtkWidget *, а затем передали его на gtk_entry_set_text(), что ожидает GtkEntry *. Правильный синтаксис был бы GTK_ENTRY(text), но вам больше не нужно этого делать, поскольку у вас уже есть указатель GtkEntry * в коде, который я написал выше.

...