есть св-во
public:
function<void(void)> onClickAction
Внутри метода build я создаю кнопку
auto *openButton = new Button("Open", size, positionButton, buttonStyleConfigurator);
openButton->onClickAction = [this, &size, &positionGame, &buttonStyleConfigurator] () {
auto *okButton = new Button("Ok", size, pos, buttonStyleConfigurator);
unique_ptr<GUI> okBtn(okButton);
this->addElement(okBtn);
}
метод addElement();
void Screen::addElement(unique_ptr<GUI> &element) {
this->drawableElements.push_back(move(element));
}
class Screen {
protected:
vector<unique_ptr<GUI>> drawableElements{};
При добавлении кнопки okButton из 3 примера кода, программа падает с ошибкой
Process finished with exit code 143 (interrupted by signal 15: SIGTERM)
Что может быть не так? Когда я это делал ВНЕ метода build, всё работало
Если вы внутри метода OnClick создаете новый экземпляр Button, то у вас явные проблемы с дизайном
Ну, а как, я на экране №1, нажал на кнопку, надо сформирать новый экран с другими уже элементами, и при рендере подменить старый экран на новый
Обсуждают сегодня