如何将GtkExpander添加到GtkScrolledWindow?

时间:2010-11-15 14:48:29

标签: c gtk

我有一些像这样的代码:

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 个答案:

答案 0 :(得分:1)

也许你只是缺少一些gtk_widget_show()调用

答案 1 :(得分:0)

看起来不错,但您似乎错过了按钮创建:

GtkWidget *button;

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

添加代码以根据需要将按钮打包到窗口中,然后更改回调(appendDataToWindow)以期望data参数中的滚动窗口小部件指针,以便scrollWin不一定是全球性的。