GTK+ --进度条相关函数练习
来源:互联网 发布:ip地址代理软件 编辑:程序博客网 时间:2024/06/06 22:38
最近刚开始学GTK+图形界面编程,练习使用了有关进度条的函数,分享一下=_=
/************************************************************************* > File Name: table.c > Author: Tanswer_ > Mail: 98duxm@gmail.com > Created Time: 2016年08月01日 星期一 09时48分59秒 ************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <gtk/gtk.h>void destroy(GtkWidget *widget,gpointer *data){ gtk_main_quit();}/*回调函数*/void toggle_orientation(GtkWidget *widget,gpointer data){/*得到进度条原来的方向*/ switch(gtk_progress_bar_get_orientation(GTK_PROGRESS_BAR(data))) { case GTK_PROGRESS_LEFT_TO_RIGHT: /*设置为与原来相反的方向*/ gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(data),GTK_PROGRESS_RIGHT_TO_LEFT); break; case GTK_PROGRESS_RIGHT_TO_LEFT: gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(data),GTK_PROGRESS_LEFT_TO_RIGHT); break; dafault: break; }}//更新进度条,这样就能够看到进度条的移动void callback(GtkWidget *widget,gpointer data){ //在原来的基础上加0.01 gdouble new_val; new_val=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(data))+0.01; if(new_val > 1.0) //越界处理 new_val = 0.0; //设置进度条的新值 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(data),new_val);}int main(int argc,char **argv){ GtkWidget *window; GtkWidget *vbox; GtkWidget *bar; GtkWidget *button1; GtkWidget *button2; //初始化图形环境 gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(destroy),NULL); /*设置窗口标题*/ gtk_window_set_title(GTK_WINDOW(window),"GtkProgressBar"); gtk_container_border_width(GTK_CONTAINER(window),50); g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL); vbox = gtk_vbox_new(FALSE,5); gtk_container_add(GTK_CONTAINER(window),vbox); /*创建一个进度条*/ bar = gtk_progress_bar_new(); /*将进度条放入box容器中*/ gtk_box_pack_start(GTK_BOX(vbox),bar,FALSE,FALSE,0); //设置进度条显示的百分比为50% gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(bar),0.5); //设置进度条的滑槽上的文本显示 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(bar),"text"); //按钮1,切换进度条的方向 button1 = gtk_button_new_with_label("切换方向"); gtk_container_add(GTK_CONTAINER(vbox),button1); g_signal_connect(GTK_OBJECT(button1),"clicked",GTK_SIGNAL_FUNC(toggle_orientation),bar); //按钮2,移动进度条 button2 = gtk_button_new_with_label("移动进度条"); gtk_box_pack_start(GTK_BOX(vbox),button2,TRUE,TRUE,15); g_signal_connect(button2,"clicked",G_CALLBACK(callback),bar); /*显示所有窗口*/ gtk_widget_show_all(window); /*主事件循环*/ gtk_main(); return 0;}
执行结果:
1 0
- GTK+ --进度条相关函数练习
- GTK 绘图相关函数
- GTK相关函数知识
- GTK文件读取进度条
- GTK函数
- 进度条相关
- gtk学习笔记-gtk函数
- GTK相关知识
- 【Python】map/reduce函数相关练习
- handler练习进度条!
- Android练习-----进度条(ProgressBar)
- gtk progressbar 进度条控件的使用
- gtk中进度条的简单使用
- GTK常用控件之进度条( GtkProgressBar )
- GTK常用控件之进度条( GtkProgressBar )
- 进度条函数
- GTK 计时器函数
- gtk函数(不断更新)
- jQueyr源码分析学习笔记(四)
- io
- HDU 2612 Find a way BFS广搜 且行且珍惜——
- Android 开发之百度地图——百度推送
- Android开发 TextView显示表情图像和文字
- GTK+ --进度条相关函数练习
- Android网络编程(七)源码解析OkHttp前篇[请求网络]
- StringUtils用法
- Java移位补充
- php中$_SERVER和HTTP_X_FORWARDED_FOR以及REMOTE_ADDR获取IP的区别
- PHP的全局变量;try,catch用法
- iOS App创建桌面快捷方式
- 使用JEB脚本(2)
- Socket长连接和短连接的区别