Кнопки программирования Glade3 C

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


person Ree    schedule 25.02.2011    source источник


Ответы (1)


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 * в коде, который я написал выше.

person ptomato    schedule 25.02.2011
comment
Благодарю вас! U не понял, что я могу сделать это. - person Ree; 25.02.2011