<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gtk" xml:lang="es">

  <info>
    <link type="guide" xref="tech" group="gtk"/>
    <revision pkgversion="3.0" date="2011-04-05" status="candidate"/>

    <credit type="author copyright">
      <name>Shaun McCance</name>
      <email its:translate="no">shaunm@gnome.org</email>
      <years>2011–2012</years>
    </credit>

    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>

    <desc>Kit de herramientas de widgets para interfaces gráficas</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Daniel Mustieles</mal:name>
      <mal:email>daniel.mustieles@gmail.com</mal:email>
      <mal:years>2011-2019</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Jorge González</mal:name>
      <mal:email>jorgegonz@svn.gnome.org</mal:email>
      <mal:years>2007-2010</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mario Carrión</mal:name>
      <mal:email>mario@monouml.org</mal:email>
      <mal:years>2006</mal:years>
    </mal:credit>
  </info>

<title>GTK+</title>

<p>GTK+ es la principal biblioteca usada para construir interfaces de usuario en GNOME. Su nombre proviene del «GIMP Tool Kit (kit de herramientas para GIMP)», ya que originalmente se desarrolló explícitamente para este programa de manipulación de imágenes, y posteriormente se estableció como una biblioteca individual. Proporciona todos los controles de interfaz de usuario, o <em>widgets</em>, usados en una aplicación gráfica común. Es una API moderna, orientada a objetos que permite construir interfaces de usuario atractivas y sofisticadas sin tratar con los detalles de bajo nivel como el pintado o la interacción con el dispositivo.</p>

<p>Además de los widgets básicos, como botones, casillas, y entradas de texto, GTK+ también proporciona potentes API según el modelo Vista-Controlador (MVC) para vistas de árbol, campos de texto multilínea, y acciones de menú y barra de herramientas.</p>

<p>Los widgets en GTK+ se colocan en las ventanas usando un <em>modelo de paquetes de cajas</em>. Los programadores sólo especifican cómo empaquetar los widgets juntos en cajas contenedoras, en lugar de su posición en coordenadas absolutas. GTK+ se asegura de que las ventanas se dimensionan correctamente para ajustarse a su contenido y maneja automáticamente las redimensiones de las ventanas. Para idiomas que se leen de derecha a izquierda, como el árabe y el hebreo, GTK+ invierte automáticamente la interfaz del usuario, por lo que los controles tienen el aspecto visual esperado.</p>

<p>GTK+ le permite desarrollar widgets personalizados para usarlos en aplicaciones. Similares a los nativos o a los widgets del almacén, estos widgets personalizados puede soportar todas las características de GTK+: soporte para idiomas de derecha a izquierda, accesibilidad de interfaces, navegación con el teclado y tamaño automático.</p>

<list style="compact">
  <item><p><link href="https://www.gtk.org/">Página web oficial</link></p></item>
  <item><p><link href="https://developer.gnome.org/gnome-devel-demos/stable/">Tutorial de demostración</link></p></item>
  <item><p><link href="https://developer.gnome.org/gtk3/stable/">Manual de referencia</link></p></item>
  <item><p><link href="https://gitlab.gnome.org/GNOME/gtk/">Repositorio Git</link></p></item>
  <item><p>Listas de correo:</p>
    <list style="compact">
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list">Escribir aplicaciones en GTK+</link></p></item>
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-list">Discusión general sobre GTK+</link></p></item>
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-devel-list">Desarrollo de GTK+</link></p></item>
    </list>
  </item>
</list>
</page>
