我有一些像这样的代码:
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将被添加到滚动窗口,但它不起作用..任何建议都会有所帮助。
答案 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
不一定是全球性的。