3

使用 GTK+ 的GtkFileChooserDialog,我如何允许用户选择文件或文件夹(两者都在这里有效)。可用的操作是互斥的。

4

2 回答 2

5

不幸的是,我认为这是不可能的。

我在传输的“创建种子”对话框中玩了一下这个,最后使用一个radibox来启用两个选择对话框按钮之一,一个在文件模式下,另一个在文件夹模式下。

于 2010-07-09T04:06:05.840 回答
1

您可以添加另一个按钮。这是一个小的示例文件选择器窗口,它有一个用于打开文件或文件夹的“打开”按钮和一个用于选择文件的“选择”按钮。

void filechooser(GtkWidget* widget, gpointer gFilepath) {
   // create the dialogue with an "Open" button
   string* filepath = (string*) gFilepath;
   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 the additional "Select" button
   const guint MY_SELECTED = 0;
   gtk_dialog_add_button(GTK_DIALOG(dialog), "Select", MY_SELECTED);

   guint response = gtk_dialog_run(GTK_DIALOG(dialog));
   if(response == GTK_RESPONSE_ACCEPT || response == MY_SELECTED){
      *filepath = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
   }
   gtk_widget_destroy(dialog);
}
于 2015-11-21T08:34:11.520 回答