我试图打开一个Gtkmm::FileChooserDialog
来选择多个文件,并将它们的路径和文件名打印到一个标签上。我可以打开对话框并选择文件,但我很难将文件名读到我的变量中。
FileChooserDialog openFileDialog("", FILE_CHOOSER_ACTION_OPEN);
openFileDialog.add_button("Cancel", RESPONSE_CANCEL);
openFileDialog.add_button("Open", RESPONSE_OK);
openFileDialog.set_current_folder(ustring::compose("%1/Desktop", ustring(getenv("HOME"))));
openFileDialog.set_transient_for(*this);
openFileDialog.set_select_multiple(true);
Glib::RefPtr<Gtk::FileFilter> fileFilter = Gtk::FileFilter::create();
fileFilter->set_name("Text Files (*.txt)");
fileFilter->add_pattern("*.txt");
openFileDialog.add_filter(fileFilter);
fileFilter = Gtk::FileFilter::create();
fileFilter->set_name("All Files (*.*)");
fileFilter->add_pattern("*.*");
openFileDialog.add_filter(fileFilter);
if (openFileDialog.run() == RESPONSE_OK)
label.set_text(ustring::compose("File = %1", ustring(openFileDialog.get_filename())));
return true;
1条答案
按热度按时间mwngjboj1#
您可以使用
Gtk::FileChooser::get_filenames
(Gtkmm 3.24):它返回文件名的
std::vector
。**注意:**在我的回答中,我一直在覆盖
label
变量,因为它是代码片段中的所有上下文。可能你有多个标签,或者你想在一个标签中打包所有的文件名。我把这部分留给你。