当前位置:Linux教程 - Linux - GTK入门导读(档案选取物件)

GTK入门导读(档案选取物件)



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

    发布人:netbull 来自:Linux开发指南