FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
Módulos C++20
Warning
Esta característica aún está en desarrollo, y la API puede cambiar en futuras versiones. Se necesita tu contribución para ayudarnos a mejorar la compatibilidad y usabilidad de los módulos C++ en FTXUI. Si encuentras algún problema o tienes sugerencias, por favor, abre un issue.

FTXUI soporta experimentalmente módulos C++20 para reducir los tiempos de compilación y mejorar la organización del código. Cada parte de la biblioteca tiene un módulo correspondiente, dividido en particiones por cada cabecera.

Usa la opción FTXUI_BUILD_MODULES para construir el propio proyecto FTXUI y proporcionar módulos C++20, por ejemplo con CMake y Ninja:

cmake \
-DCMAKE_GENERATOR=Ninja \
-DFTXUI_BUILD_MODULES=ON \
..
ninja
Note
Para usar módulos, necesitas un compilador compatible con C++≥20, CMake versión 3.20 o superior, y usar un generador compatible como Ninja. Ten en cuenta que los generadores Makefile no soportan módulos.

Luego, en tu propio código puedes consumir los módulos y el código de forma normal:

import ftxui;
using ftxui::Button;
int main() {
auto screen = ScreenInteractive::TerminalOutput();
auto button = Button("Click me", screen.QuitClosure());
screen.Loop(button);
return 0;
}
auto screen
ScreenInteractive es una Screen que puede manejar eventos, ejecutar un bucle principal y administrar ...
Archivo de módulo que reexporta todos los submódulos de FTXUI.

Nota, el módulo de conveniencia ftxui que simplemente agrupa todos los módulos:

export import ftxui.component;
export import ftxui.dom;
export import ftxui.screen;
export import ftxui.util;
Archivo del módulo para operaciones de componentes de FTXUI.
Archivo de módulo para operaciones DOM de FTXUI.
Archivo de módulo para las operaciones de pantalla de FTXUI.
Archivo de módulo para operaciones de utilidad de FTXUI.

Puedes importar solo el módulo o módulos que necesites si lo deseas.

Para encontrar y enlazar correctamente los módulos con CMake, usa target_link_libraries para obtener las banderas de compilador, enlazador, etc. correctas.

target_link_libraries(my_executable
#...whatever...
PRIVATE ftxui::modules
)

Lista de módulos

Los módulos hacen referencia directa a la cabecera correspondiente, o a un grupo de cabeceras relacionadas para proporcionar una interfaz más conveniente. Los siguientes módulos están disponibles:

  • ftxui
    • ftxui.component
    • ftxui.dom
    • ftxui.screen
    • ftxui.util