Linux 版 (精华区)

发信人: netiscpu (平淡是真), 信区: Linux
标  题: GTK入门导引(11)
发信站: 紫 丁 香 (Mon Dec 14 14:43:43 1998), 转信



发信人: hey (吟风·悠游98), 信区: Unix
标  题: GTK入门导引(11)
发信站: 华南网木棉站 (Tue Nov 10 11:04:07 1998), 转信

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 <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;
    }

--
        6m3m┌───────────────────────┐0m
        6m3m│     4m疾如风,徐如林,侵掠如火,不动如山       3m│4m 0m
        6m3m└───────────────────────┘0m4m 0m
          4m                                                 0m

m;32m※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.38.212.66]m
--
m;32m※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: mtlab.hit.edu.cn]
--

                              Enjoy Linux!
                          -----It's FREE!-----

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.068毫秒