Gtk::FileChooserButton *chooserButton = nullptr;
std::string idChooserButton = commonArray[b]["id"];
builder->get_widget(idChooserButton, chooserButton);
Php::call("var_dump",chooserButton);
if (strcmp(commonArray[b]["action"], "click") == 0) {
Php::Value callback = commonArray[b]["callback"];
chooserButton->signal_selection_changed().connect(
sigc::bind<Php::Value,Php::Value>(
sigc::mem_fun(*this, &ParserGtk::callbacks),
callback,
chooserButton->get_filename()
)
);
}
Это мой код, когда я выбираю файл срабатывает callback, но функция get_filename
возвращает пустую строку ""
В общем, в моём случае я пытался вызвать get_filename
во время выполнения сигнала. Надо просто вызвать get_filename
в callback функции. В общем код преобрёл следующий вид:
chooserButton->signal_file_set().connect(
sigc::bind<Php::Value,Gtk::FileChooserButton*>(
sigc::mem_fun(*this, &ParserGtk::chooserButtonCallback),
callbackChooser,
chooserButton
)
);
и callback функция
/**
* choooser button special callback
* @param callback php callback function
* @param chooserButton gtk filechooserbutton object
*/
void ParserGtk::chooserButtonCallback(Php::Value callback, Gtk::FileChooserButton *chooserButton) {
Php::call("var_dump",chooserButton->get_filename());
callback(chooserButton->get_filename());
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Использовал функцию GetLogicalDevices и возник вопрос, сколько может быть логических разделов в Windows? 26 - как и количество букв в английском языке...