Используя GTK + GtkFileChooserDialog, как я могу разрешить пользователю выбирать файл или папку (оба значения здесь). actions available являются взаимоисключающими.Включить GtkFileChooserDialog для выбора файлов или папок
3
A
ответ
5
К сожалению, я не думаю, что это возможно.
Я немного поиграл с этим диалоговым окном «создать торрент» в передаче и запустил с помощью radibox, чтобы включить одну из двух кнопок выбора: один в режиме файла, а другой в режиме папки.
1
Вы можете добавить еще одну кнопку. Вот небольшой пример, который иллюстрирует, как вы могли это сделать.
void filechooser(GtkWidget* widget, gpointer data) {
// we will pass the filepath by reference
string* filepath = (string*) data;
GtkWidget *dialog = gtk_file_chooser_dialog_new(
"Open File", NULL,
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
// add a button which allows the user to select a folder
const guint selected = 0; // response from the button
gtk_dialog_add_button(GTK_DIALOG(dialog),"Select",selected);
// get the path the user selected
guint response = gtk_dialog_run(GTK_DIALOG(dialog));
if(response == GTK_RESPONSE_ACCEPT || response == selected){
*filepath = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
}
gtk_widget_destroy(dialog);
}
Обратите внимание, что кнопка «Select» в моем примере делает то же действие, как «Открыть», если выбран файл, это только действительно отличается для папок.