Vasara Posted September 24, 2020 Share Posted September 24, 2020 (edited) Добрый день. 1. Нельзя ограничить количество вводимых символов, строка либо сдвигается за границы виджета, если он ограничен контейнером, либо двигает границы виджета. 2. Не удалось заставить работать setPosition(). Без ALIGN виджет располагается дефолтно. С ALIGN соответственно его параметру. 3. Контейнер Окно не масштабируется если setSizeable(0). Должна быть возможность установить размеры через setHeight(), setWidth() при любом раскладе. С Уважением Константин. Edited September 24, 2020 by Vasara Link to comment
moroz Posted September 24, 2020 Share Posted September 24, 2020 Здравствуйте. 2 hours ago, Vasara said: 1. Контейнер справа не поменял размеры. Какое именно поведение вы от него хотите? Встроенной функции для ограничения количества символов нет. Это можно решить при помощи такого коллбека: int AppWorldLogic::init() { ... edittextGridSizeX->addCallback(Gui::CHANGED, MakeCallback(this, &AppWorldLogic::on_text_changed)); ... } void AppWorldLogic::on_text_changed() { const auto LIMIT = 3; auto MAX_SYMBOLS = LIMIT + edittextGridSizeX->getNumLines() - 1; if (strlen(edittextGridSizeX->getText()) > MAX_SYMBOLS) { String str(edittextGridSizeX->getText(), MAX_SYMBOLS); auto num_lines = 1; auto last_line_size = 0; for (auto it = str.get(), ite = it + str.size(); it != ite; ++it) { if (*it == '\n') { ++num_lines; last_line_size = 0; } else ++last_line_size; } edittextGridSizeX->setCallbackEnabled(Gui::CHANGED, false); edittextGridSizeX->setText(str); edittextGridSizeX->setCallbackEnabled(Gui::CHANGED, true); edittextGridSizeX->setCursor(last_line_size, num_lines - 1); } } Link to comment
moroz Posted September 24, 2020 Share Posted September 24, 2020 2 hours ago, Vasara said: 2. Не удалось заставить работать setPosition(). Без ALIGN виджет располагается дефолтно. С ALIGN соответственно его параметру. Попробуйте флаг ALIGN_OVERLAP Link to comment
moroz Posted September 24, 2020 Share Posted September 24, 2020 2 hours ago, Vasara said: 3. Контейнер Окно Какой виджет вы имеете в виду? 1 Link to comment
Vasara Posted September 25, 2020 Author Share Posted September 25, 2020 8 hours ago, moroz said: Какое именно поведение вы от него хотите? Была моя ошибка, после копипасты недосмотрел имя виджета. 9 hours ago, moroz said: Попробуйте флаг ALIGN_OVERLAP Попробовал, работает. 9 hours ago, moroz said: Какой виджет вы имеете в виду? Widget Window. Спасибо, ваша помощь сэкономила мне кучу времени. Link to comment
silent Posted September 25, 2020 Share Posted September 25, 2020 WidgetWindow будет ресайзиться в следующей версии, поправили баг. Спасибо! 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