美文网首页
GTK<读取文件进度条>

GTK<读取文件进度条>

作者: 康大虎 | 来源:发表于2016-07-06 12:33 被阅读0次

#include <gtk/gtk.h>

#include <stdio.h>

#include <string.h>

#include <windows.h>

#define FILE_READ_PATH "F:/123.txt"

static float read_len = 0.0;

gboolean update_progress_bar(gpointer data);

int main(int argc,char *argv[])

{

GtkWidget *window,*vbox,*pbar;

gtk_init(NULL,NULL);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);

gtk_window_set_title(GTK_WINDOW(window),"Process bar");

gtk_window_set_default_size(GTK_WINDOW(window),300,250);

vbox = gtk_vbox_new(FALSE,0);

gtk_container_add(GTK_CONTAINER(window),vbox);

pbar = gtk_progress_bar_new();

gtk_box_pack_start(GTK_BOX(vbox),pbar,FALSE,FALSE,50);

g_timeout_add(100,update_progress_bar,pbar);

g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;

}

gboolean update_progress_bar(gpointer data)

{

FILE *fp = NULL;

//FILE *fwp = NULL;

char buff[8] = {0};

gint size = 10,file_len = 0;

unsigned char *pbuff;

GtkProgressBar *pbar = (GtkProgressBar *)data;

if((fp = fopen(FILE_READ_PATH,"r")) == NULL)

{

return 0;

}

/*if((fwp = fopen("F:/kang.txt","ab")) == NULL)

{

return 0;

}*/

fseek(fp,0,SEEK_END);

file_len = ftell(fp);

pbuff = (unsigned char *)malloc((size+1)*sizeof(unsigned char));

memset(pbuff,0,size*sizeof(unsigned char));

if(read_len <= file_len)

{

fseek(fp,(long int)read_len,SEEK_SET);

fread(pbuff,sizeof(unsigned char),size,fp);

/* fwrite(pbuff,size*sizeof(unsigned char),1,fwp);*/

gtk_progress_bar_set_fraction(pbar,read_len/file_len);

sprintf(buff,"%d%s",(int)((read_len/file_len)*100),"%");

gtk_progress_bar_set_text(GTK_PROGRESS_BAR(pbar),buff);

read_len += size;

return TRUE;   //必须返回TRUE;

}

if(read_len > file_len)

{

gtk_main_quit();

return TRUE;

}

fclose(fp);

/*fclose(fwp);*/

free(pbuff);

return TRUE;     //必须返回TRUE;

}

相关文章

  • GTK<读取文件进度条>

    #include #include #include

  • Arch安装fcitx

    安装fcitx,安装gtk、qt模块。 安装fcitx配置工具 .xinitrc文件添加gtk、qt支持

  • GNOME Terminal 设置边框的方法

    创建这个文件 ~/.config/gtk-3.0/gtk.css,写入如下内容: 重新登陆生效。适用版本:GNOM...

  • Gtk 屏幕截图并显示(Linux C语言)

    使用 gtk 截图后不需要保存图片文件,直接通过内存中的数据进行显示。首先安装 gtk : 然后编写应用程序: ...

  • 共读Python编程-异常卡

    文件读取 读取整个文件 open() 打开读取文件read()读入文件with用于自动关闭文件流 文件路径 相对路...

  • R语言读写excel文件2021.2.24

    1、读取excel文件 1.1 读取单个excel文件 直接用read.table()读取excel文件, 读取从...

  • 利用Python处理Excel数据

    读取数据 读取x.xlsx文件 读取文件夹 读取txt文件 读取csv格式Excel表 写入excel 显示数据 ...

  • fs文件系统操作

    基础写入文件 简单写入文件 流式文件写入 简单文件读取 流式文件读取 流式文件拷贝(读取 + 写入) 复制文件 f...

  • R数据读写

    csv文件读写 txt文件读写 读取excel文件 转成csv文件读取(逗号分隔) 专程prn文件读取(空格分隔)...

  • 02. Pandas读取数据

    02. Pandas读取数据 本代码演示:pandas读取纯文本文件读取csv文件读取txt文件pandas读取x...

网友评论

      本文标题:GTK<读取文件进度条>

      本文链接:https://www.haomeiwen.com/subject/nnjkjttx.html