[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 编程技术 > 其它 > 正文
GTK入门导引--11. 档案选取物件
翻译: Brian Lin, OK STATION, Webmaster (2001-04-27 13:31:14)
   
--------------------------------------------------------------------------------

11. 档案选取物件
档案选取物件是个又快又简单的方法来产生一个File dialog box. 它有Ok, Cancel, 及Help按钮, 可以大量缩短开发时间. 

要产生一个新的档案选取物件可用: 


GtkWidget* gtk_file_selection_new (gchar *title);

要设定档名, 例如指定目录, 或给定内定档名, 可用这个函数: 


void gtk_file_selection_set_filename (GtkFileSelection *filesel, gchar *filename);

要取得使用者输入的名称, 可用以下函数: 


gchar* gtk_file_selection_get_filename (GtkFileSelection *filesel);

另外还有指标指向档案选取物件的内容: 


dir_list 
file_list 
selection_entry 
selection_text 
main_vbox 
ok_button 
cancel_button 
help_button 
当然了您会想要用ok_button, cancel_button, 及help_button指标用来处理信号. 

在这里包含了从testgtk.c偷来的一个范例, 修改成自己的版本. 在此您可以看到, 要产生一个档案选取物件不需要做太多事. 在此, 在这个范例中, Help button显示在萤幕中, 它没做什麽事, 因为没有信号接在上面. 


#include 

/* 取得选取的档名并显示在萤幕上 */
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;
}



--------------------------------------------------------------------------------
    (http://www.fanqiang.com)
    进入【UNIX论坛

相关文章
GTK入门导引--结束语 (2001-04-27 13:38:49)
GTK入门导引--20. 写出属於您自己的物件 (2001-04-27 13:35:04)
GTK入门导引--19. GTK的rc档 (2001-04-27 13:34:33)
GTK入门导引--18. 设定视窗物件属性 (2001-04-27 13:34:13)
GTK入门导引--17. glib (2001-04-27 13:33:43)
GTK入门导引--16. 选取区域管理 (2001-04-27 13:33:18)
GTK入门导引--14. Menu物件 (2001-04-27 13:32:52)
GTK入门导引--13. Undocumented Widgets (2001-04-27 13:32:29)
GTK入门导引--12. List物件 (2001-04-27 13:31:41)
GTK入门导引--11. 档案选取物件 (2001-04-27 13:31:14)

===更多相关===
 

★  樊强制作 欢迎分享  ★