Здравствуйте! Никак не пойму приведение типов для виджетов. В программе:
#include <gtk/gtk.h>
#include <stdio.h>
static void app_activate (GApplication *app)
{
GtkWidget *win = gtk_application_window_new (GTK_APPLICATION (app));
gtk_window_set_title (GTK_WINDOW (win), "Тест");
gtk_window_set_default_size (GTK_WINDOW (win), 400, 300);
GtkWidget *nb = gtk_notebook_new(); // GtkNotebook
gtk_window_set_child (GTK_WINDOW (win),nb);
GtkWidget *lblTab1 = gtk_label_new("Настройки");
GtkWidget *pnd1 = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
gtk_notebook_append_page(GTK_NOTEBOOK(nb), pnd1, lblTab1);
GtkWidget *lblTab2 = gtk_label_new("Графики");
GtkWidget *pnd2 = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
gtk_notebook_append_page(GTK_NOTEBOOK(nb), pnd2, lblTab2);
GtkWidget *lblPnd1 = gtk_label_new("Первый элемент");
// gtk_window_set_child (GTK_PANED(pnd1), lblPnd1); // Ошибка
// gtk_window_set_child (pnd1, lblPnd1); // Ошибка
// gtk_window_set_child (GTK_WINDOW(pnd1), lblPnd1); // Ошибка
// gtk_window_set_child (GTK_WIDGET(pnd1), lblPnd1); // Ошибка
gtk_window_present (GTK_WINDOW (win));
}
int main (int argc, char **argv)
{
GtkApplication *app = gtk_application_new ("mainwin.study", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect (app, "activate", G_CALLBACK (app_activate), NULL);
int stat =g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
system("pause");
return stat;
}
Не удается правильно привезти указатель на виджет lblPnd1 к нужному типу в gtk_window_set_child. Помогите, пожалуйста, разобраться (когда и как нужно преобразовывать различные типы виджетов).