Red de conocimiento informático - Aprendizaje de programación - Posición de ventana fija Gtk

Posición de ventana fija Gtk

En el artículo anterior, analizamos los controles internos de Gtk2-perl y presentamos brevemente varias categorías amplias de controles. Aquí explicaremos algunos de los controles con más detalle para que puedas entenderlos con mayor claridad. Tenga en cuenta que cada control tiene muchas llamadas internas y se necesitaría mucho espacio para introducir todas las funciones de cada control una por una, por lo que aquí solo presentamos las funciones básicas o importantes.

Primero comprendamos el propósito de estos controles:

Hay muchos controles en Gtk2-perl, pero solo hay unos pocos tipos, uno para mostrar datos y otro para datos de operaciones. uno para diseñar otros controles y otro para propósitos especiales.

1. Los controles de visualización de datos generalmente pueden mostrar datos de texto, datos de imágenes u otros datos especiales. Este tipo de control se utiliza principalmente para mostrar datos y los datos mostrados generalmente no se pueden editar ni manipular. Los usuarios generalmente pueden obtener cierta información a través de estos controles, pero no pueden operarlos. Más específicamente:

El control que muestra datos de texto es Gtk2::Label, que se utiliza para mostrar un pequeño fragmento de texto como título o mensaje, es decir, un embellecedor.

El control que muestra datos de imágenes es Gtk2::Image, que es similar al Gtk2::Label mencionado anteriormente y se utiliza para mostrar imágenes.

También tenemos el control Gtk2::ProgressBar, que muestra una barra de progreso indicando al usuario el progreso actual del programa, lo cual es común en programas de larga ejecución.

Gtk2::Statusbar Muestra la barra de estado. Este control se suele utilizar en la parte inferior del programa para mostrar algún tipo de información al usuario.

Gtk2::Frame es un control decorativo que muestra un borde exterior con un título. Puede incorporar un control infantil.

Gtk2::Hseparator Otro control decorativo que muestra separadores horizontales.

Gtk2::Vseparator Igual que arriba, mostrando separadores verticales.

Gtk2:: Control de lista de listas. Muestra datos de forma alineada verticalmente. A menudo se utiliza para enumerar grandes cantidades de datos similares. Los datos se pueden ordenar por valor.

Gtk2: TreeView es un control de visualización de árbol. Se utiliza principalmente para mostrar datos en formato de árbol. Por ejemplo, el Explorador Win32 que usamos a menudo es un control de árbol típico. En este control, puede mostrar una lista de árbol, expandir o contraer la lista, editar cada elemento de la lista, usar botones simples en la lista y más. Este control se utiliza a menudo junto con otros controles como Gtk2::TreeStore. El concepto de este control también se superpone hasta cierto punto con los controles de tipo acción, que no sólo los muestran sino que también permiten al usuario manipularlos.

2. Los controles de manipulación de datos generalmente permiten al usuario ingresar o editar texto, seleccionar una opción o activar un evento, como hacer clic en un botón para ejecutar una función.

Gtk2: El botón es un control de botón normal, que activará un evento al hacer clic.

Gtk2:: CheckButton Botón de tipo check, suele tener dos estados: marcado o no marcado.

Gtk2:: Botón de opción RadioButton, generalmente varios botones de opción, y luego seleccionamos uno de ellos, que a menudo se usa para una selección mutuamente excluyente.

Gtk2::ToggleButton Un tipo de botón de alternancia (similar a un interruptor) que, cuando se presiona, permanece presionado hasta que el usuario presiona el botón nuevamente para revelar que se ha soltado.

Gtk2:: Cuadro de entrada de texto de una sola línea. El usuario puede ingresar una línea de texto aquí

.

Gtk2: TextView es un poderoso control de texto que no solo puede ingresar, mostrar y editar texto de varias líneas, sino también mostrar imágenes estáticas o imágenes animadas simples, e incluso puede incrustarse en otros controles, como Botones integrados, etc.

El uso de este control se describirá en detalle más adelante.

Gtk2::Combo es un control de selección. Es muy similar a un menú desplegable de selección en html, es decir, aparece un menú desplegable y el usuario puede seleccionar una entre múltiples opciones en el menú desplegable. Generalmente se usa en barras de herramientas, por ejemplo: en la barra de herramientas podemos seleccionar directamente una fuente o tamaño de fuente, usaremos este tipo de control.

Gtk2::SpinButton es un control de selección numérica. Este control se utiliza principalmente para seleccionar un número dentro de un rango determinado. Hay dos botones para selección hacia arriba y hacia abajo en el lado izquierdo del control. El usuario puede usar estos dos botones para sumar 1 o restar 1 al número seleccionado, o ingresar directamente el número deseado en el control.

Cajas de entrada horizontal y vertical Gtk2::Hscale y Gtk2::Vscale. Este cuadro muestra una barra móvil en dirección horizontal o vertical, y el usuario puede mover la barra móvil para seleccionar un valor intermedio dentro de un cierto rango de los datos de entrada, con menos frecuencia.

3. Diseñar otros controles. Los controles generalmente no se muestran claramente frente al usuario. Solo son responsables de organizar otros controles de manera ordenada. Generalmente hay dos ideas de diseño aquí: una es usar tablas para dividir la ventana principal horizontal y verticalmente, y luego colocar los controles necesarios en cada unidad dividida de acuerdo con sus propios requisitos, la otra es usar el estilo de lienzo, puede colocarlos todos; los controles como quieras, simplemente especifica las coordenadas de cada control en la ventana principal.

Los controles dispuestos en formato de tabla incluyen:

Gtk2::HBox es un control utilizado para la división horizontal, con el propósito de colocar múltiples controles en diferentes niveles.

Gtk2::Control VBox para división vertical. El propósito está en la clase.

Gtk2::Table es un control que se divide según la tabla, es decir, se divide horizontal y verticalmente al mismo tiempo. Es una combinación de los dos controles anteriores.

Los controles dispuestos en forma de lienzo son:

Gtk2::Fixed Este control le permite colocar controles secundarios fijos en cualquier lugar dentro de él. Sin embargo, este control también tiene algunas desventajas: por ejemplo, puede causar truncamiento de texto, subcontroles superpuestos u otros problemas de visualización. Por lo que aquí no se recomienda su uso.

Gtk2::Layout es un control que le permite colocar libremente controles secundarios en él, pero admite ventanas móviles, y las ventanas móviles pueden tener áreas de desplazamiento ilimitadas. Este control fue escrito para compensar las deficiencias de Gtk2::Fixed. Es esencialmente el mismo que Gtk2::Fixed, por lo que se recomienda su uso.

Para algunos propósitos de diseño complejos, los controles de diseño a menudo se combinan. Sin embargo, en términos generales, es más sencillo utilizar un diseño de tabla.

4. Controles de propósito especial Hay muchos controles en Gtk2-perl que tienen sus propios propósitos especiales. Aquí coloco la mayoría de los controles que no se pueden clasificar en el formulario anterior en una categoría.

El primero de estos controles fue el control selector, cuyo propósito era abrir una nueva ventana para realizar una función que tienen muchos programas.

Gtk2::ColorSelection control de selección de color. En la ventana emergente de selección de color universal, los usuarios pueden elegir rojo, verde o azul. El usuario también puede ajustar la opacidad, la saturación y el tono del color y luego devuelve el valor del color seleccionado por el usuario.

Gtk2::ColorSelection Legend:

Gtk2::FontSelection control de selección de fuente. Aparece una ventana de selección de fuente universal (las fuentes seleccionables se leen desde las fuentes actuales del sistema), lo que permite al usuario seleccionar una fuente, tamaño de fuente y estilo, acompañado de una vista previa de la fuente seleccionada actualmente.

Gtk2::FontSelection Legend:

Gtk2::FileSelection control de selección de archivos.

Aparece una ventana de selección de archivos que permite al usuario seleccionar archivos de forma única o múltiple, seleccionar directorios, crear archivos o crear directorios. Los usuarios pueden cambiar de directorio libremente, pero el estilo del cuadro de selección de archivos es diferente al de la plataforma Windows. Cabe decir que ambos tienen sus propias ventajas.

Gtk2::FileSelection Legend:

Gtk2::Calendar control de calendario. Muestra el calendario gregoriano estándar, lo que permite al usuario ver el año, mes y día actual o seleccionar la fecha actual.

Gtk2::Dialog Un cuadro de diálogo simple con algunas opciones de botones simples, como Aceptar, Cancelar y Aplicar. Este control se utiliza generalmente para manejar algunas opciones simples del usuario, como preguntarle al usuario sobre errores del programa, preguntarle si desea almacenar archivos, etc.

En segundo lugar, control de menú. Estos controles se utilizan para mostrar un menú o barra de herramientas convencional en la parte superior de un programa.

Gtk2::Menu es un control de menú estándar. Este control nos permite generar menús desplegables que contienen múltiples opciones de menú o menús en cascada más profundos. Cada elemento del menú puede corresponder a un evento desencadenante. Se pueden agregar íconos y atajos al menú.

Gtk2: Control de barra de herramientas estándar. Como todos sabemos, los programas de interfaz gráfica de usuario actuales generalmente configuran una barra de herramientas de acceso directo debajo del menú, que contiene algunos botones especiales para facilitar a los usuarios su uso rápido. Gtk2::Toolbar es una barra de herramientas estándar. Permite insertar texto y botones de iconos.

Asimismo, existen algunos controles con usos más específicos.

Gtk2:: Control de ventana rodante con barra de desplazamiento. Este control es bastante importante. Generalmente, si queremos mostrar algún contenido que no se puede mostrar completamente en la ventana principal del programa, necesitamos agregar este control, o más precisamente, agregar el control que muestra datos al Gtk2: Control de barra de desplazamiento, de modo que podamos utilizar las barras de desplazamiento horizontal y vertical para desplazar los datos en la ventana adicional.

Gtk2:: DrawingArea es un control muy importante, que se puede llamar control de dibujo. Este control nos permite construir nuestros propios controles o llamar a instrucciones de dibujo de bajo nivel sin utilizar ningún control existente. Todos sabemos que los controles existentes pueden ser capaces de construir un programa GUI estándar, pero cuando escribimos un programa GUI, es posible que tengamos nuestras propias necesidades especiales que requieran un control que no se puede encontrar en los controles estándar, es por eso que necesitamos hacerlo. utilice Gtk2::DrawingArea. Para utilizar este control, necesita conocer módulos como Glib y pango. En el próximo artículo, discutiremos este control tan importante. Para utilizar este control, necesita conocer módulos como Glib y pango. En el próximo artículo, presentaremos el uso de este control.

Gtk2::Tooltips. Este control está diseñado para explicar con más detalle algunas etiquetas simples en la interfaz gráfica de usuario. Por ejemplo, cuando pasamos el mouse sobre una determinada etiqueta en la interfaz, después de un tiempo A. Aparecerá un cuadro de texto que explica la etiqueta con más detalle.

Gtk2::Notebook. Este es un control poderoso, al igual que la ventana de pestañas más utilizada en Firefox. Nos permite incrustar múltiples controles en una ventana principal, cada control se puede activar y desactivar. a través de la etiqueta en la parte superior del control. Microsoft usa un control similar en IE7.

Básicamente, estos controles son controles que creo que se usarán con frecuencia en la programación de Gtk2-perl. También hay algunos controles que se usan menos comúnmente, en los que no entraré en detalles aquí. Varios de los controles más importantes se detallan a continuación.

Volver al inicio

Dos: Gtk2::Window

Este es posiblemente el control más importante, porque Gtk2::Window determina la ventana principal en la que se muestran los estilos. y muchas configuraciones.

Ilustraremos esto en el código:

my $win = Gtk2::Window -gt; new ($type); ## Crear un nuevo objeto de ventana

$win -gt; set_title ( "Prueba de ventana" ); ## Establece el título de esta ventana

$win -gt; set_position ( 'center' ) ## Establece esta posición; de la ventana

$win -gt; set_type_hint ($hint ## Establece el tipo de mensaje de esta ventana

$win -gt; Gtk2 -gt; main_quit } ); ## Establece la salida del programa cuando se cierra la ventana

Ejemplo de nueva ventana:

En la primera línea, el valor de $type puede ser: toplevel o ventana emergente. nivel superior significa que esta ventana es la ventana de nivel superior. Esta ventana puede contener otras ventanas y es nuestro tipo de ventana más utilizado; p es el tipo de ventana emergente más utilizado, lo que significa que esta ventana es una ventana emergente, generalmente una; ventana de menú o una ventana de información sobre herramientas. Generalmente es una ventana emergente. El valor predeterminado es el nivel superior.

En la segunda línea, podemos configurar el título de la ventana. Tenga en cuenta que el texto del título aquí debe estar codificado en utf8, por lo que al ingresar chino, generalmente es necesario convertir la codificación. Podemos usar $win -gt; get_title para obtener el título de la ventana actual, por ejemplo, podemos usarlo cuando queremos agregar texto al título de la ventana actual.

En la tercera línea, configuramos un ícono. El ícono se toma directamente del archivo en el disco duro. El formato del archivo puede ser png, jpg, gif o bmp. normalmente 16x16 píxeles. Si es demasiado grande, solo se recortará fuera del rango de 16x16.

En la cuarta línea, configuramos el tamaño de la ventana, o podemos arreglar el tamaño de la ventana: $win -gt; set_resizable (0); o cambiar el tamaño de la ventana en cualquier momento: $win -gt; cambiar el tamaño ($ancho, $alto); u obtener el tamaño de la ventana actual: ( $w, $h ) = $win - gt; Por supuesto, también podemos mostrar la ventana en pantalla completa: $win -gt; pantalla completa; o pantalla no completa: $win -gt; unmaximize; .

En la quinta línea, configuramos la posición de visualización cuando se crea la ventana por primera vez. Puede ser: Ninguno, Centrado, Siempre centrado, Ventana principal centrada, Mouse. Ninguno significa que aparece aleatoriamente, mouse significa que la esquina superior derecha de la ventana aparece en la posición del puntero del mouse.

En la sexta línea, configuramos el tipo de mensaje de la ventana. Los valores que puede configurar son: Normal, Diálogo, Menú, Barra de herramientas, Pantalla de bienvenida, Utilidades, Dock, Escritorio.

La pantalla de presentación se puede llamar pantalla de presentación, que es una ventana normal que vemos al iniciar un programa. Cuando se completa el programa, la ventana desaparecerá y se convertirá en una ventana formal. interfaces gráficas de usuario Es muy común en los programas, principalmente para dejar una mejor impresión en el usuario mientras espera que el programa se lea por completo. Las ventanas de presentación no tienen botones para maximizar, minimizar o cerrar.

Escritorio se llama escritorio.

Esto significa que la ventana aparecerá como un escritorio sin ningún título ni botones para maximizar, minimizar, cerrar, etc. Lo que hay que destacar aquí es: la diferencia entre win32 y X11. Por ejemplo, las indicaciones del escritorio no funcionan en Win32, sólo en X11. Por lo tanto, evite utilizar esta opción cuando intente escribir un programa que se ejecute multiplataforma.

opciones de acoplamiento al muelle. Esta opción hace que la ventana aparezca como un pequeño panel. Esta opción también solo está disponible en entornos X11. Consulte los protocolos internos de x11 para obtener información sobre cómo utilizar esta opción.

Nota: Muchas opciones de aviso no funcionan en win32.

Hay otra función para introducir: $win -gt; set_decorated Su función es eliminar la decoración de la ventana, es decir, eliminar el título de la ventana, maximizar y minimizar la fila de cierre. y la ventana se muestra como una ventana vacía. Cuando necesitamos usar este tipo de ventana en win32, podemos configurar un tipo de mensaje de ventana especial y luego usar $win -gt;

Tal vez alguien se esté preguntando por qué necesitamos utilizar estos tipos de mensajes especiales. En x11, puede consultar las reglas del protocolo interno de x11, que las describen. En win32, creo que la razón principal es usar ventanas desnudas. El uso de ventanas desnudas sigue siendo muy común en varias plataformas. Por ejemplo: nuestra notificación de llegada de correo msn común es una ventana de este tipo o cuando necesitamos escribir una ventana extraña, como esas ventanas extrañas en la ventana del Reproductor de Windows Media; Necesitamos eliminar la decoración de ventana estándar original y usar nuestras propias imágenes para representar el estilo de la ventana.

Además de las API que presentamos anteriormente, también hay $win -gt; configura la ventana que se mostrará frente al usuario; También se usa para establecer la ventana La posición cuando aparece por primera vez, $ gravedad puede ser noroeste, norte, este, oeste, norte, este, etc.

Volver al inicio

Tres: Gtk2::TextView

Potente control de texto multilínea que puede mostrar demasiados tipos de datos. Básicamente, si desea mostrar únicamente datos o editar un flujo de datos que consta de texto e imágenes, puede hacerlo directamente usando este control.

El control consta de las siguientes partes:

i.Gtk2::TextBuffer

ii.Gtk2::TextChildAnchor

iii . Gtk2::TextIter

iv.Gtk2::TextMark

v. Gtk2::TextTag

vi.Gtk2::TextTagTable

vii.Gtk2::TextView

La función de Gtk2::TextBuffer es guardar todos los datos que se mostrarán en el búfer de texto.

Gtk2: TextChildAnchor se utiliza para insertar un control en el buffer de texto.

Gtk2: TextIter se utiliza para manipular la posición del buffer actual.

Gtk2: La función de TextMark es guardar una determinada posición en el búfer de texto, que es más similar a la función de marcador en HTML. Podemos volver a esta posición a voluntad.

Gtk2: TextTag se utiliza para agregar etiquetas de visualización al texto en el búfer de texto, como cambiar el color de visualización del texto, la fuente del texto o el tamaño del texto.

Gtk2::TextTagTable se utiliza para guardar todas las etiquetas Gtk2::TextTag.

Cada buffer Gtk2::TextBuffer corresponde a solo un Gtk2::TextTagTable.

Gtk2: El propósito de TextView es mostrar datos en un buffer de texto.

Hemos visto que implementar un control de texto multilínea requiere la cooperación de múltiples módulos, así que describamos el proceso en general: El control Gtk2::TextView que muestra datos (texto e imágenes) se almacenará en el En el búfer creado por Gtk2::TextBuffer, este búfer puede usar Gtk2::TextTag para agregar el formato de los datos del búfer (texto), o podemos usar Gtk2::TextChildAnchor para agregar otros controles al búfer para su visualización. Podemos usar Gtk2::TextIter cuando queremos manipular la posición en el búfer, por ejemplo, avanzar una línea y retroceder una letra. Cuando queremos marcar una ubicación en el caché y luego movernos rápidamente a la ubicación mostrada, podemos usar Gtk2::TextMark.

$textview -gt; nuevo ();

$textview -gt; can_focus (1);

$textview -gt; set_ left_margin (10);

$textview -gt; set_right_margin (10);

$textview -gt; GTK_WRAP_WORD_CHAR' );

mi $tab_ table = Gtk2::TextTagTable -gt; nuevo ();

mi $text_buffer = Gtk2::TextBuffer -gt; ;

$textview -gt; set_buffer ($ text_buffer);

$sw -gt; add ($textview);

Un ejemplo de una vista de texto control :

En este ejemplo, primero creamos un control Gtk2::ScrolledWindow cuyo propósito es generar barras de desplazamiento. Cuando los datos que queremos mostrar son más grandes que la ventana Gtk2::TextView, necesitamos barras de desplazamiento. Aquí configuramos $sw -gt; set_policy ( 'automatic' , 'automatic' ); Esto significa que las barras de desplazamiento horizontales y verticales aparecen automáticamente, es decir, si los datos a mostrar exceden la ventana, entonces aparecerán las barras de desplazamiento. ; de lo contrario, no se mostrará la barra de desplazamiento. Una cosa más a tener en cuenta: $sw -gt; add ($textview); El control de la barra de desplazamiento debe contener un control de texto.

Luego, creamos un control Gtk2::TextView y configuramos sus propiedades.

$textview -gt; can_focus (1); Indica que el control de texto puede aceptar entradas.

$textview -gt; set_editable (0); significa que el contenido del control de texto no se puede editar, es decir, no podemos insertar texto a voluntad. Si se establece en 1, podemos editar el contenido del control de texto, como si fuera el Bloc de notas.

$textview -gt; set_left_margin (10); establece el margen izquierdo del control de texto en 10 píxeles, que es la distancia entre el control y el borde de la ventana (u otro control), principalmente por motivos estéticos.

$textview -gt; set_wrap_mode ('GTK_WRAP_WORD_CHAR'); Establece el modo de ajuste de texto para que se ajuste automáticamente cuando se encuentre con el borde de la ventana. Otras opciones incluyen: Ninguna, sin saltos de línea;

Luego creamos una tabla Gtk2::TextTagTable. Luego cree un Gtk2::TextBuffer y asigne un búfer de texto a la tabla Gtk2::TextTagTable. (También hay una forma más sencilla: podemos usar directamente Gtk2::TextBuffer -gt; new (); para crear automáticamente una tabla de etiquetas).

Finalmente, usaremos la zona del búfer de texto de Gtk2::TextView. establecido en el búfer que acabamos de crear. En este punto, se completa el trabajo de inicialización. A continuación, veremos cómo insertar datos en dicho control de texto.

Ver ejemplo:

Usar Gtk2::Pango;

$text_buffer -gt; set_text ( "" );

my $ iter = $text_buffer -gt; get_iter_at_offset (0);

$text_buffer -gt; insert_txt ($iter, "prueba prueba\n" ); ("negrita", peso =gt; PANGO_WEIGHT_BOLD);

$text_buffer -gt; insert_with_tags_by_name ($iter, "prueba de prueba", "negrita");

mi $pixbuf = Gtk2:: Gdk ::Pixbuf -gt; new_from_file ('test.jpg');

$text_buffer -gt; insert_pixbuf ($iter, $pixbuf);

mi $entrada = Gtk2: :

$textview -gt; add_child_at_anchor ($input, $anchor);

$textview -gt; show_all ();

Primero, usemos Gtk2: :Pango; , esto es para usar definiciones constantes, como PANGO_WEIGHT_BOLD a continuación.

$text_buffer -gt; set_text ( "" ); Primero borra el búfer. my $iter = $text_buffer -gt; get_iter_at_offset (0); Mueve nuestro iter al principio del buffer. Estos son los dos mejores pasos que deben realizar los búferes de texto antes de comenzar a insertar datos. Debido a que los búferes de texto a menudo se reutilizan, realizar estos dos pasos antes de comenzar un nuevo uso garantiza que el búfer esté funcionando correctamente.

Hay una nota sobre iter. iter representa la posición actual en el búfer. Al insertar cualquier dato, se inserta desde la posición actual de iter.

Dado que se pueden insertar texto, imágenes, controles, etc. en el búfer, gtk completa internamente el cálculo de iter, y solo debemos preocuparnos de cómo usarlo.

Siguiente paso, $text_buffer -gt; insert_txt ($iter, "test test test\n"); Otra cosa a tener en cuenta: cuando se completa la inserción, el valor de $iter se incrementará automáticamente hasta el final de la inserción para la siguiente inserción de datos. Por lo tanto, la próxima vez que insertemos datos, también podemos usar directamente $text_buffer -gt; insert_txt ($iter, "test test test\n"); cada inserción, $ El valor de iter se actualizará automáticamente.

A continuación, creamos una etiqueta de visualización en negrita en $text_buffer -gtt; create_tag ("bold", peso =gt; PANGO_WEIGHT_BOLD ); Aquí podemos crear varias etiquetas como: color de texto, fuente, tamaño, estilo, negrita, cursiva o subrayado de texto, color de fondo de texto, mapa de bits de fondo de texto, alineación de texto, etc.

$text_buffer -gt; insert_with_tags_by_name ($iter, "test test", "bold"); Insertamos un fragmento de texto "test test" y le asignamos el nombre de etiqueta "negrita" al texto. que el texto se mostrará en negrita.

A continuación, my $pixbuf = Gtk2::Gdk::Pixbuf -gt; new_from_file ( 'test.jpg' ); $text_buffer -> insert_pixbuf( $iter , $pixbuf ); Leemos un archivo de imagen y creamos un nuevo pixbuf. Creamos un archivo de imagen. Iter , $pixbuf ); Insertamos la imagen en el buffer de texto.

Finalmente, mi $input = Gtk2::Entry -gt; crea un nuevo control de entrada de texto de una sola línea. my $anchor = $text_buffer -gt; create_child_anchor ( $iter ); Crea un ancla secundaria en la posición actual en el búfer. $textview -gt; add_child_at_anchor ( $input , $anchor ); Agrega el control de entrada de texto recién creado al ancla secundaria del control de visualización de texto $textview. $textview -gt; show_all (); Mostrar todos los datos. Es mejor llamar a esta función al insertar un control en el búfer; de lo contrario, es posible que el control no se muestre.

Gtk2: El control de texto TextView es potente y fácil de usar, por lo que puede usarse para implementar algunas funciones más convencionales, como escribir editores de texto, software de visualización simple, etc. El proyecto de navegador web Perl del autor, "shellweb", utilizó originalmente este control para mostrar datos html. Si está interesado, puede consultar el uso.