我找不到使用Gtk::FileChooserNative
的代码示例来帮助我了解如何使用该类。这里的文档不是很有用。
我的目标是创建一个函数,它打开一个本地文件选择器对话框,在用户选择文件夹后,将文件夹的路径打印到终端。
当我尝试编译这个时:
void MyWindow::on_button_browse_clicked()
{
Gtk::FileChooserNative dialog ("Please choose a folder",
Gtk::FileChooser::Action::SELECT_FOLDER,
"Choose",
"Cancel");
}
我得到以下错误:
error: calling a protected constructor of class 'Gtk::FileChooserNative'
如何创建Gtk::FileChooserNative
我这里没有Gtkmm 4,但是从您发布的文档来看,似乎您需要使用工厂方法而不是构造函数来创建这样的对话框:
static Glib::RefPtr<FileChooserNative> Gtk::FileChooserNative::create(
const Glib::ustring& title,
Window& parent,
FileChooser::Action action,
const Glib::ustring& accept_label = {},
const Glib::ustring& cancel_label = {}
)
在你的例子中,像这样:
void MyWindow::on_button_browse_clicked()
{
auto dialog = Gtk::FileChooserNative::create("Please choose a folder",
*this,
Gtk::FileChooser::Action::SELECT_FOLDER ,
"Choose",
"Cancel");
dialog->show();
}