我有一些这样的代码:
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,但它不起作用。任何建议都会很有帮助。
发布于 2010-11-16 02:38:48
也许您只是遗漏了一些gtk_widget_show()调用
发布于 2010-11-15 23:07:49
看起来不错,但是你似乎错过了按钮的创建:
GtkWidget *button;
button = gtk_button_new_with_label("Click me");
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(appendDataToWindow), scrollWin);根据需要添加代码以将按钮打包到窗口中,然后更改回调(appendDataToWindow)以在data参数中预期滚动窗口小部件指针,这样scrollWin就不必是全局变量。
https://stackoverflow.com/questions/4185474
复制相似问题