GTK+ 2.0 Tutorial |
||
---|---|---|
Разные виджеты (Miscellaneous Widgets) |
Виджет выбора файла - быстрый и простой способ показать диалоговое окно 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;
}
|
Color Selection |
Container Widgets |