easy教程Gtk+之关于文件选择构建(2)
来源:互联网 发布:新开淘宝小店如何推广 编辑:程序博客网 时间:2024/05/16 09:30
文件选择构建(GtkFileSelect)是一种快速简单的显示文件对话框的方法,带有‘确定’,‘取消’,‘帮助’按钮,可以极大地减少编程时间。
1, 创建文件选择构建
GtkWidget *gtk_file_selection_new(gchar *title);
注意文件选择构建本身就是一个窗体,所以不需要也不能把它放入另外的窗体。一般放入回调内,对某事件响应弹出文件选择构件。
2, 设置文件名
void gtk_file_selection_filename(GtkFileSelection *filesel,gchar *filename);
文件选择构件的结构如下:
typedef struct {
GtkWidget *dir_list;
GtkWidget *file_list;
GtkWidget *selection_entry;
GtkWidget *selection_text;
GtkWidget *main_vbox;
GtkWidget *ok_button;
GtkWidget *cancel_button;
GtkWidget *help_button;
GtkWidget *history_pulldown;
GtkWidget *history_menu;
GList *history_list;
GtkWidget *fileop_dialog;
GtkWidget *fileop_entry;
gchar *fileop_file;
gpointer cmpl_state;
GtkWidget *fileop_c_dir;
GtkWidget *fileop_del_file;
GtkWidget *fileop_ren_file;
GtkWidget *button_area;
GtkWidget *action_area;
} GtkFileSelection;
在为文件选择构建的信号设置回调函数时,可能用到ok_button,cancel_button两个指针。例如打开一个文件,我们需要对ok_button的clicked信号设置回调函数使他连接打开文件的函数。也可以添加删除修改一些内部控件。
3, 获取用户输入或选中的文件名
Gchar* gtk_file_selection_get_filename(GtkFileSelection *filesel);
该函数可以返回用户输入或者选中的文件。通常我们需要在ok_button的clicked事件回调内调用它。
下面看一个简单的demo
GtkWIdget *FileSelectio;
void OpenFIle(GtkWIdget *widget,gpointer *data);
void button_event(GtkWIdte *widget,gpointer *data);
Int main(int agrc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
Gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOWTOLEVEL);
gtk_widget_set_size_request(window,100,100);//调整窗体大小
gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);
button = gtl_button_new_with_label(“打开文件”);
gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(button_event),NULL);
gtk_container_add(GTK_CONTAINER(window),button);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
}
Void button_event(GtkWidget *widget ,gpointer *data)
{
FileSelection = gtk_file_selection_new(“选择文件”);//创建文件选择构件
gtk_file_selection_set_filename(GTK_FILE_SELECTION(FileSelection),”*.txt”);
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(FIleSelection)->ok_button),”clicked”,GTK_SLGNAL_FUNC(OpenFIle),NULL);
gtk_widget_show(FIleSelection);
}
Void OpenFile(GtkWidget *widget,gpointer *data)
{
G_print(“%s\n”,gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSelection)));//输入要选择的文件名
}
- easy教程Gtk+之关于文件选择构建(2)
- easy教程Gtk+之GTK Gossip: GtkHBox 与 GtkVBox(三)
- 文件选择 File Selections@GTK+ 2.0 中文教程连载
- ANT教程之三 Ant构建文件
- Linux之GTK系列教程
- GTK rc 文件的格式@GTK+ 2.0 中文教程连载
- 选择GTK+
- GTK编程基础---颜色选择对话框、文件选择控件
- 颜色选择 Color Selection@GTK+ 2.0 中文教程连载
- 游戏摇杆之Easy Touch 3教程
- 游戏摇杆之Easy Touch 3教程
- 游戏摇杆之Easy Touch 3教程
- 关于web性能的思考与分享[10]-fis3构建工具-语法教程(2)之定位资源
- GTK 的 rc 文件/rc 文件的功能@GTK+ 2.0 中文教程连载
- GTK开发之RC文件使用
- 关于ExtJS、JQuery UI和easy UI的选择问题
- rc 文件示例@GTK+ 2.0 中文教程连载
- 关于GTK RC文件 使用……转载
- Android 之 下拉框(Spinner)的简单使用
- 为Yii增加一个自定义全局函数
- 图的遍历
- 怎样提高游戏的文件读写效率
- linux驱动之ioctl实现与传参
- easy教程Gtk+之关于文件选择构建(2)
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- java同步机制 synchronized
- warning LNK4089: all references to "USER32.dll" discarded by /OPT:REF
- 二叉树的遍历 前序 中序 后序 分别实现递归和非递归遍历方式
- shiro安全框架
- Lisp.槽属性(Slot Properties)
- highcharts与highstock实例
- 关于句柄引起的内存泄露问题