У меня есть программа, в которой я открываю диалоговое окно файла, беру имя файла и выполняю некоторые ресурсоемкие операции.
Моя проблема в том, что во время выполнения операции, даже если для нее была вызвана функция gtk_widget_destroy (), диалоговое окно файла остается открытым.
Это проблема, потому что мне нужно будет реализовать панель загрузки в ближайшем будущем, и я не хочу, чтобы диалог болтался. мой код выглядит так:
if(gtk_dialog_run(GTK_DIALOG(fileSelect)) == GTK_RESPONSE_OK){
filename = string(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fileSelect)));
gtk_widget_destroy(fileSelect);
}else{
gtk_widget_destroy(fileSelect);
return;
}
resourceIntensiveFunction();
Итак, как я могу дождаться выхода из диалогового окна файла, прежде чем продолжить?
Кстати я использую GTK 2.
Итак, я узнал, как это сделать, это относительно просто.
while(gtk_events_pending()){
gtk_main_iteration_do(true);
}
Надеюсь, это помогло кому-то.