GTK+中文件选择控件(File S…

文件选择(file selection)构件是一种快速、简单的显示文件对话框的方法。它带有“Ok”、“Cancel”、“Help”按钮,可以极大地减少编程时间。
 
可以用下面的方法创建文件选择构件:
 
GtkWidget *gtk_file_selection_new( const gchar *title );
 
要设置文件名,例如,要在打开时指向指定目录,或者给定一个缺省文件名,可以使用下面的函数:
 
void gtk_file_selection_set_filename( GtkFileSelection *filesel,
                                      const 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按钮出现在屏幕上,但是它什么也不做,因为没有为它的信号设置回调函数。
 
 
 
#include <gtk/gtk.h>
 
void file_ok_sel( GtkWidget         *w,
                  GtkFileSelection *fs )
{
    g_print ("%sn", gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
}
 
int main( int    argc,
          char *argv[] )
{
    GtkWidget *filew;
   
    gtk_init (&argc, &argv);
   
   
    filew = gtk_file_selection_new ("File selection");
   
    g_signal_connect (G_OBJECT (filew), "destroy",
                     G_CALLBACK (gtk_main_quit), NULL);
   
    g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
                    "clicked",
                      G_CALLBACK (file_ok_sel), filew);
   
   
    g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
                             "clicked",
                              G_CALLBACK (gtk_widget_destroy), filew);
   
   
    gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
                                 "penguin.png");
   
    gtk_widget_show (filew);
    gtk_main ();
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值