📄 gtk_tut-11.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN"><HTML><HEAD><meta http-equiv="pragma" content="no-cache"><TITLE>GTK导引: 档案选取物件</TITLE></HEAD><BODY><A HREF="gtk_tut-10.html" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut-10.html"><IMG SRC="prev.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/prev.gif" ALT="Previous"></A><A HREF="gtk_tut-12.html" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut-12.html"><IMG SRC="next.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/next.gif" ALT="Next"></A><A HREF="gtk_tut.html#toc11" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut.html#toc11"><IMG SRC="toc.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/toc.gif" ALT="Contents"></A><HR><H2><A NAME="s11">11. 档案选取物件</A></H2><P>档案选取物件是个又快又简单的方法来产生一个File dialog box.它有Ok, Cancel, 及Help按钮, 可以大量缩短开发时间.<P>要产生一个新的档案选取物件可用:<P><BLOCKQUOTE><CODE><PRE>GtkWidget* gtk_file_selection_new (gchar *title);</PRE></CODE></BLOCKQUOTE><P>要设定档名, 例如指定目录, 或给定内定档名, 可用这个函数:<P><BLOCKQUOTE><CODE><PRE>void gtk_file_selection_set_filename (GtkFileSelection *filesel, gchar *filename);</PRE></CODE></BLOCKQUOTE><P>要取得使用者输入的名称, 可用以下函数:<P><BLOCKQUOTE><CODE><PRE>gchar* gtk_file_selection_get_filename (GtkFileSelection *filesel);</PRE></CODE></BLOCKQUOTE><P>另外还有指标指向档案选取物件的内容:<P><UL><LI>dir_list</LI><LI>file_list</LI><LI>selection_entry</LI><LI>selection_text</LI><LI>main_vbox</LI><LI>ok_button</LI><LI>cancel_button</LI><LI>help_button</LI></UL><P>当然了您会想要用ok_button, cancel_button, 及help_button指标用来处理信号.<P>在这里包含了从testgtk.c偷来的一个范例, 修改成自己的版本.在此您可以看到, 要产生一个档案选取物件不需要做太多事.在此, 在这个范例中, Help button显示在萤幕中, 它没做什麽事,因为没有信号接在上面.<P><BLOCKQUOTE><CODE><PRE>#include <gtk/gtk.h>/* 取得选取的档名并显示在萤幕上 */void file_ok_sel (GtkWidget *w, GtkFileSelection *fs){ g_print ("%s\n", gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));}void destroy (GtkWidget *widget, gpointer *data){ gtk_main_quit ();}int main (int argc, char *argv[]){ GtkWidget *filew; gtk_init (&argc, &argv); /* 产生新的档案选取物件 */ filew = gtk_file_selection_new ("File selection"); gtk_signal_connect (GTK_OBJECT (filew), "destroy", (GtkSignalFunc) destroy, &filew); /* 把ok_button接到file_ok_sel功能 */ gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", (GtkSignalFunc) file_ok_sel, filew ); /* 把cancel_button接到destroy物件 */ gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button), "clicked", (GtkSignalFunc) gtk_widget_destroy, GTK_OBJECT (filew)); /* 设定档名, 就像是要存一个档案一样, 而我们是给定一个内定档名 */ gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew), "penguin.png"); gtk_widget_show(filew); gtk_main (); return 0;}</PRE></CODE></BLOCKQUOTE><P><HR><A HREF="gtk_tut-10.html" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut-10.html"><IMG SRC="prev.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/prev.gif" ALT="Previous"></A><A HREF="gtk_tut-12.html" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut-12.html"><IMG SRC="next.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/next.gif" ALT="Next"></A><A HREF="gtk_tut.html#toc11" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/gtk_tut.html#toc11"><IMG SRC="toc.gif" tppabs="http://extend.hk.hi.cn/%7ehusuyu/http/beginner/gtk/toc.gif" ALT="Contents"></A></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -