выбор файлов
виджет выбора файла - быстрый и простой
способ показать диалоговое окно file.
окно полностью укомплектовано всем
необходимым включая кнопки ok и cancel
что позволяет сэкономить время при
программмировании.
диалог выбора файлов
создаётся функцией:
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.

#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)));
}
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);
/* соединяем ok_button с file_ok_sel функцией */
g_signal_connect (g_object (gtk_file_selection (filew)->ok_button),
"clicked", g_callback (file_ok_sel), (gpointer) filew);
/* соединяем cancel_button с закрытием виджета */
g_signal_connect_swapped (g_object (gtk_file_selection (filew)->cancel_button),
"clicked", g_callback (gtk_widget_destroy),
g_object (filew));
/* устанавливаем имя файла по умолчанию */
"penguin.png");
gtk_widget_show (filew);
gtk_main ();
return 0;
}
|
|