QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4138|回复: 7

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

[复制链接]
发表于 2007-8-25 22:47:33 | 显示全部楼层 |阅读模式
小弟最近写了个下载的小程序,在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 编辑 ]
 楼主| 发表于 2007-8-25 23:01:32 | 显示全部楼层
难道太简单了。。
回复

使用道具 举报

 楼主| 发表于 2007-8-27 16:20:52 | 显示全部楼层
求助呀求助
回复

使用道具 举报

发表于 2007-9-18 15:35:40 | 显示全部楼层
gtk_timeout_add前后不用加g_threads_enter和leave
gtk_timeout_add来做定时刷新是没问题的,不知道你的create_mainscreen是怎么写的
回复

使用道具 举报

发表于 2007-11-29 16:25:58 | 显示全部楼层
太过追求刷新界面不是件好事,刷新就是重绘!还是高速,分消很大
回复

使用道具 举报

发表于 2007-11-29 16:28:09 | 显示全部楼层
建议,使用事件来启动刷新,不要用while{  if{......}....}的语法,对程序过行不利!
回复

使用道具 举报

发表于 2007-11-29 16:28:44 | 显示全部楼层
简单程序,不明显而已
回复

使用道具 举报

发表于 2008-1-9 20:37:35 | 显示全部楼层
我觉得可以用alarm 刷新
不知道大家觉得怎样??

[ 本帖最后由 wkt 于 2008-1-9 20:42 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 00:38 , Processed in 0.054180 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表