Marsik Posted August 30, 2023 Share Posted August 30, 2023 Здравствуйте, у меня есть слайдер для которого я настроил сallback на событие show, но при отображении слайдера событие не вызывается. В чем может быть проблема ? int WaterSettingsWindow::init() { auto gui = Gui::getCurrent(); auto wWindow = WidgetWindow::create(m_gui, "Окно настройки воды"); gui->addChild(wWindow, Gui::ALIGN_OVERLAP); m_slider = WidgetSlider::create(gui); m_slider->setMinValue((int)(min_value * 100)); m_slider->setMaxValue((int)(max_value * 100)); m_slider->setValue((int)(default_value * 100)); m_slider->setWidth(200); m_slider->setButtonWidth(20); m_slider->setButtonHeight(20); m_slider->setToolTip(tooltip); wWindow->addChild(m_slider, Gui::ALIGN_LEFT); slider->setHidden(true); CallbackBase* callback = MakeCallback([this]() { Log::message(Math::vec4_green, "Show slider.\n"); }); slider->addCallback(Gui::CALLBACK_INDEX::SHOW, callback); } void WaterSettingsWindow::update() { if (Input::isKeyDown(Input::KEY_P)) m_slider->setHidden(!m_slider->isHidden()); } Link to comment
silent Posted August 30, 2023 Share Posted August 30, 2023 Колбэка для метода setHidden() не предусмотрено. Gui::CALLBACK_INDEX::SHOW сработает только для методов addChild() / replaceChild() внутри VBox/VPaned (и их наследников). Gui::CALLBACK_INDEX::HIDE в свою очередь сработает только на removeChild() / replaceChild(). При этом в случае с replaceChild() SHOW сработает для нового виджета. а HIDE, соответственно, для старого. Уточним в документации этот момент, спасибо. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Marsik Posted August 30, 2023 Author Share Posted August 30, 2023 @silent Спасибо за ответ. Да этой информации очень не хватало в документации. Было хорошо если бы появился CALLBACK_INDEX для setHidden. Link to comment
silent Posted August 31, 2023 Share Posted August 31, 2023 Спасибо, подумаем над реализацией (но, наверное, уже в новых виджетах). How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Recommended Posts