gpt4 book ai didi

c - GTK+ - 刷新滚动窗口

转载 作者:行者123 更新时间:2023-12-04 05:23:16 25 4
gpt4 key购买 nike

我在主窗口中有一个滚动窗口。我想当我点击按钮刷新时,滚动窗口的内容会自动刷新。这是对按钮的回调

vbox = gtk_vbox_new(TRUE, 5);
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), vbox);
gtk_signal_connect(GTK_OBJECT(button_refresh), "clicked", GTK_SIGNAL_FUNC(button_re), NULL);

有回调函数:
 void button_re(GtkWidget *window, gpointer data){
connectserver(myFile, numof);//connect to server and get information
if(numof > 0){
for(int i = 0; i< numof; i++){
hbox = gtk_hbox_new(TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
sprintf(buffer, "%s", myFile[i].name);
label = gtk_label_new(buffer);
button_down = gtk_button_new_with_label("Download");
gtk_signal_connect(GTK_OBJECT(button_down), "clicked", GTK_SIGNAL_FUNC(button_download), (gpointer ) i);
gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button_down, TRUE, FALSE, 0);
}
}else if(numof == 0){
label = gtk_label_new("Have nothing on server");
gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, FALSE, 2);
}

但是当我点击按钮时,什么也没有发生。我该怎么办?
我很抱歉,因为我的英语不好。
谢谢!

最佳答案

button_re您正在创建新标签、按钮等。除非您调用 gtk_widget_show,否则这些不会显示。在他们身上,不知何故。在程序初始化的某个地方 - main()也许 - 也许你打电话 gtk_widget_show_all在您的主窗口上,它递归地“显示”其中的所有内容。但是,除非您明确要求它们,否则不会显示这些新对象。

关于c - GTK+ - 刷新滚动窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com