stcstc 发表于 2007-8-25 22:47:33

一个很简单的GTK刷新界面问题

小弟最近写了个下载的小程序,在GTK的图形界面上写了个treeview的列表,想让其内容进行更新,于是我想到了刷新整个界面,但是用gtk_timeout_add老是刷不出来?
也尝试在分线程中实现也不行?听说还有种方法是
while(gtk_events_pending())
gtk_main_iteration();
不知如何应用……


小弟的main代码如下

#include <stdio.h>
#include <X11/Xlib.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include "ui.h"

int
main (int argc, char **argv)
{
                if(!g_thread_supported())
                g_thread_init(NULL);

      gtk_init (&argc, &argv);

                g_threads_enter();
      gtk_timeout_add(500,create_mainscreen,NULL);
      gtk_main ();
                g_threads_leave();
      exit (1);
}

[ 本帖最后由 stcstc 于 2007-8-25 23:02 编辑 ]

stcstc 发表于 2007-8-25 23:01:32

难道太简单了。。:shock:

stcstc 发表于 2007-8-27 16:20:52

求助呀求助

mozilla 发表于 2007-9-18 15:35:40

gtk_timeout_add前后不用加g_threads_enter和leave
gtk_timeout_add来做定时刷新是没问题的,不知道你的create_mainscreen是怎么写的

hobby! 发表于 2007-11-29 16:25:58

太过追求刷新界面不是件好事,刷新就是重绘!还是高速,分消很大

hobby! 发表于 2007-11-29 16:28:09

建议,使用事件来启动刷新,不要用while{if{......}....}的语法,对程序过行不利!

hobby! 发表于 2007-11-29 16:28:44

简单程序,不明显而已

wkt 发表于 2008-1-9 20:37:35

我觉得可以用alarm 刷新
不知道大家觉得怎样??

[ 本帖最后由 wkt 于 2008-1-9 20:42 编辑 ]
页: [1]
查看完整版本: 一个很简单的GTK刷新界面问题