Невозможно прокрутить текстовую область, созданную с помощью FTXUI.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Невозможно прокрутить текстовую область, созданную с помощью FTXUI.

Сообщение Anonymous »

В консольном приложении Windows я хочу добавить TUI (пользовательский интерфейс терминала). Я хочу создать несколько вкладок. На вкладке я хочу отображать журналы приложения, поэтому там должно быть много строк, я могу добавлять новые строки и иметь возможность прокручивать область, чтобы просмотреть старые журналы. Моя проблема в том, что я не могу создать область прокрутки, даже если вижу полосу прокрутки.
Это пример кода:

Код: Выделить всё

#include 
#include 
#include 

using namespace ftxui;

int main() {
auto screen = ScreenInteractive::Fullscreen();

// Create a scrollable area with many lines
Elements scroll_content;
for (int i = 0; i < 50; ++i) {
scroll_content.push_back(text("Line " + std::to_string(i)));
}

auto scrollable = Renderer([&] {
return vbox({
text("Top Widget"),
separator(),
vbox(scroll_content) | vscroll_indicator | frame | size(HEIGHT, LESS_THAN, 20),
separator(),
text("Bottom Widget"),
}) | border;
});

screen.Loop(scrollable);
}
И это результат на моем компьютере с Windows:
Изображение

Как вы можете видеть, у меня есть полоса прокрутки справа, но она не работает.
Я бы хотел добиться два результата:
  • Область должна прокручиваться с помощью клавиш со стрелками и/или мыши.
  • Когда я добавляю новую строку журнала, я хочу, чтобы панель автоматически прокручивалась до конца, чтобы ее увидеть.
Как мне добиться таких результатов?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... with-ftxui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»