Как добавить GtkExpander в GtkScrolledWindow? - PullRequest
0 голосов
/ 15 ноября 2010

У меня есть такой код:

GtkWidget *scrollWin;

void appendDataToWindow(GtkWidget *widget, gpointer data)
{
    GtkWidget *expander;
    expander = gtk_expander_new("GET somepage.html  200 OK   100K");
    gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollWin), 
                                          expander);
}

int main()
{
    // initialize a window
    // add a vbox to the window
    scrollWin = gtk_scrolled_window_new(NULL, NULL);
    gtk_box_pack_start(GTK_BOX(vbox), scrollWin, FALSE, TRUE, 5);
    // add a button to the vbox
    // when the button is clicked, appendDataToWindow will be called

    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}

Что я хочу сделать, так это то, что при нажатии кнопки в прокручиваемое окно добавляется новый GtkExpander, но он не работает.Любые предложения будут полезны.

Ответы [ 2 ]

1 голос
/ 15 ноября 2010

Может быть, вам просто не хватает некоторых вызовов gtk_widget_show ()

0 голосов
/ 15 ноября 2010

Выглядит хорошо, но вам, кажется, не хватает создания кнопки:

GtkWidget *button;

button = gtk_button_new_with_label("Click me");
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(appendDataToWindow), scrollWin);

Добавьте код для упаковки кнопки в ваше окно, как требуется, а затем измените функцию обратного вызова (appendDataToWindow), чтобы ожидать указатель виджета прокручиваемого окна в аргументе data, так что scrollWin не должно быть глобальный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...