Как создать несколько файловых селекторов с одной функцией в C с GTK? - PullRequest
0 голосов
/ 21 апреля 2020

Эта функция создаст файл выбора. Когда я открываю первый файл выбора и выбрать файл, все работает отлично. При открытии любого другого средства выбора файлов впоследствии происходит сбой программы с ошибкой сегментации.

void createfilechoosers()
{
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
gint res;
GtkWindow *new_window;
new_window = gtk_window_new(GTK_WINDOW_POPUP);
gwidget.filechoosers = gtk_file_chooser_dialog_new ("Open File", new_window, action, ("_Cancel"), GTK_RESPONSE_CANCEL, ("_Open"), GTK_RESPONSE_ACCEPT, NULL);

res = gtk_dialog_run (GTK_DIALOG (gwidget.filechoosers));
if (res == GTK_RESPONSE_ACCEPT)
  {
   GtkFileChooser *chooser = GTK_FILE_CHOOSER (gwidget.filechoosers);
    location.filenames[location.placement] =  gtk_file_chooser_get_filename (chooser);
  }

gtk_widget_destroy (gwidget.filechoosers);
}

...