开发者

How to add GtkExpander to GtkScrolledWindow?

I have some code like this:

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 th开发者_StackOverflow中文版e 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;
}

What I want to do is that when the button is clicked, a new GtkExpander will be added to the scrolled window, but it doesn't work.. Any suggestions will be helpful.


Maybe you're just missing some gtk_widget_show() calls


Looks good, but you seem to be missing the button creation:

GtkWidget *button;

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

Add code to pack the button into your window as required, and then change the callback (appendDataToWindow) to expect the scrolled window widget pointer in the data argument, so that scrollWin doesn't have to be a global.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜