{"id":182110,"date":"2026-06-15T14:48:51","date_gmt":"2026-06-15T12:48:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/ftxui-7-0-0"},"modified":"2026-06-15T14:48:51","modified_gmt":"2026-06-15T12:48:53","slug":"ftxui-7-0-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/ftxui-7-0-0","title":{"rendered":"FTXUI 7.0.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e7f6f312dcd0e68f6c4a433c8a1f7428.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e8d95dc05a772de029ec8f802570b7d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/1cd61277751493f007d93a4d97577e51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/dd383576c3698b6775ac294a5ea4d5c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p><noindex>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\" class=\"active\"><\/a><\/noindex><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><\/a><\/p>\n<p>      <noindex><\/p>\n<p>El 13 de mayo, despu\u00e9s de m\u00e1s de un a\u00f1o de desarrollo, se lanz\u00f3 la biblioteca multiplataforma 7.0.0 <a rel=\"nofollow\" href=\"https:\/\/github.com\/ArthurSonzogni\/FTXUI\">FTXUI<\/a>, dise\u00f1ada para crear aplicaciones con interfaz de texto en C++ y distribuida bajo la licencia MIT.<\/p>\n<p><\/noindex><\/p>\n<p>Funciones de la biblioteca:<\/p>\n<ul>\n<li>estilo funcional, similar a React JS;<\/li>\n<li>estilo simple y elegante (seg\u00fan el autor de la biblioteca);<\/li>\n<li>manejo de eventos del teclado y del rat\u00f3n;<\/li>\n<li>soporte para UTF8 y Unicode;<\/li>\n<li>soporte para True Color;<\/li>\n<li>soporte para cambiar el estilo del cursor;<\/li>\n<li>soporte para animaciones;<\/li>\n<li>soporte para dibujo;<\/li>\n<li>sin dependencias externas;<\/li>\n<li>multiplataforma (Linux\/MacOS, WebAssembly, Windows).<\/li>\n<\/ul>\n<h5>Cambios<\/h5>\n<p><strong>La documentaci\u00f3n<\/strong><\/p>\n<ul>\n<li>Se corrigi\u00f3 la generaci\u00f3n de documentaci\u00f3n con Doxygen.<\/li>\n<li>Se agreg\u00f3 un tema propio para Doxygen.<\/li>\n<li>Divisi\u00f3n de la documentaci\u00f3n en varias p\u00e1ginas.<\/li>\n<\/ul>\n<p><strong>Compilaci\u00f3n<\/strong><\/p>\n<ul>\n<li>Se agreg\u00f3 el script tools$ amalgamate.py para generar el c\u00f3digo fuente \u00abamalgamado\u00bb: ftxui.cpp (534 Kb), ftxui.hpp (110 Kb) y ftxui_all.hpp (643 Kb).<\/li>\n<li>Se agreg\u00f3 soporte para m\u00f3dulos C++20.<\/li>\n<li>Se a\u00f1adi\u00f3 soporte para Meson.<\/li>\n<li>Se elimin\u00f3 la dependencia de pthread.<\/li>\n<li>Se corrigi\u00f3 el soporte para Bazel.<\/li>\n<li>Otras mejoras.<\/li>\n<\/ul>\n<p><strong>Cambios de compatibilidad con versiones anteriores<\/strong><\/p>\n<ul>\n<li>Renombramientos:\n<ul>\n<li>Pixel a `Cell<\/li>\n<li>Image a Surface<\/li>\n<li>ScreenInteractive a App<\/li>\n<li>m\u00e9todo PixelAt a CellAt<br \/>\nPara garantizar la compatibilidad, se han proporcionado alias y encabezados para no interrumpir el funcionamiento del c\u00f3digo existente.<\/li>\n<\/ul>\n<\/li>\n<li>Uso de std::string_view en lugar de const std::string&amp; donde sea posible. Esto proporciona mejor compatibilidad con literales de cadena y evita copias innecesarias.<\/li>\n<\/ul>\n<p><strong>Componentes<\/strong><\/p>\n<ul>\n<li>Se mejor\u00f3 y moderniz\u00f3 el sistema de captura de se\u00f1ales utilizando POSIX sigaction para una m\u00e1scara de se\u00f1ales confiable. Se proporcion\u00f3 protecci\u00f3n contra la restauraci\u00f3n doble del terminal al salir del programa mediante un seguimiento at\u00f3mico del estado de origen. Se agreg\u00f3 soporte para se\u00f1ales POSIX adicionales (SIGBUS, SIGSYS como se\u00f1ales de fallo y SIGQUIT, SIGHUP como se\u00f1ales de terminaci\u00f3n diferida) y se corrigieron problemas de seguridad de se\u00f1ales as\u00edncronas.<\/li>\n<li>Se corrigi\u00f3 el problema de visualizaci\u00f3n del cursor al usar un Renderer personalizado en contenedores anidados.<\/li>\n<li>Se corrigi\u00f3 el posicionamiento del cursor en los campos de entrada y la estabilidad del desplazamiento.<\/li>\n<li>Se corrigi\u00f3 el soporte para caracteres no ASCII en modo de entrada de contrase\u00f1a.<\/li>\n<li>Se elimin\u00f3 el parpadeo del cursor durante la redibujaci\u00f3n en App.<\/li>\n<li>Manejo de entrada utilizando pipes POSIX\n<ul>\n<li>Permite que las aplicaciones FTXUI lean datos de stdin (al usar pipe) y al mismo tiempo acepten entrada del teclado en la terminal.<\/li>\n<li>Se utiliza por defecto.<\/li>\n<li>Se puede desactivar usando App::HandlePipedInput(false).<\/li>\n<li>Disponible solo en Linux y macOS.<\/li>\n<\/ul>\n<\/li>\n<li>Se han corregido muchos errores.<\/li>\n<\/ul>\n<p><strong>DOM<\/strong><\/p>\n<ul>\n<li>Soporte para salto de l\u00ednea (n) dentro de text() y vtext().<\/li>\n<li>Ahora dbox transfiere el enfoque de las capas superiores a las inferiores, en correspondencia con la representaci\u00f3n visual.<\/li>\n<li>Agregado soporte para decoradores de bordes de tablas. Esto permite, por ejemplo, cambiar el color de los bordes de la tabla.<\/li>\n<li>Se corrigi\u00f3 un error de desbordamiento de enteros en ComputeShrinkHard.<\/li>\n<li>Se agreg\u00f3 especializaci\u00f3n en vbox\/hbox\/dbox para permitir el uso del contenedor Element como entrada.<\/li>\n<li>Se corrigi\u00f3 la adici\u00f3n de elementos secundarios en gridbox.<\/li>\n<li>Se corrigi\u00f3 la representaci\u00f3n de gauge.<\/li>\n<li>Se a\u00f1adieron variantes parametrizadas de decoradores flex con el par\u00e1metro _factor. Permiten especificar coeficientes personalizados de estiramiento o compresi\u00f3n:<br \/>\nflex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), as\u00ed como variantes para los ejes x y y.<\/li>\n<\/ul>\n<p><strong>Optimizaciones de renderizaci\u00f3n<\/strong><\/p>\n<ul>\n<li>Optimizaci\u00f3n del movimiento del cursor a trav\u00e9s de l\u00edneas en el m\u00e9todo Screen::ResetPosition (sin limpieza de pantalla) a un conjunto parametrizado de comandos CSI para mover el cursor hacia arriba (x1B[A) en lugar de emitir un x1B[1A para cada l\u00ednea. Esto redujo la cantidad de caracteres de escape por cuadro durante el redibujado (por ejemplo, ~197 -&gt; 6 bytes para una pantalla con 50 l\u00edneas, una reducci\u00f3n de aproximadamente 33 veces).<\/li>\n<li>Optimizados Screen::ToString(), Color::Print() y string_width(), lo que aceler\u00f3:\n<ul>\n<li>Renderizaci\u00f3n b\u00e1sica en ~27%.<\/li>\n<li>Renderizaci\u00f3n de texto en ~27%.<\/li>\n<li>Renderizaci\u00f3n de estilos en ~38%.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/18319693\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>13 \u043c\u0430\u044f, \u043f\u043e\u0441\u043b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a 7.0.0 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 FTXUI, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430 C++ \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 MIT. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438: \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c, \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 React JS; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c (\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438); \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u00ab\u043c\u044b\u0448\u0438\u00bb; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 UTF8 \u0438 Unicode; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 True Color; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182110","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/ftxui-7-0-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47FTXUI 7.0.0 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/ftxui-7-0-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/ftxui-7-0-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/ftxui-7-0-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-06-15T12:48:53+00:00","article:modified_time":"2026-06-15T12:48:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182110","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-08-05 12:22:22","updated":"2026-08-05 12:22:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/182110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=182110"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/182110\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=182110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=182110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=182110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}