El control Dialog (Diálogo) es muy simple,
y realmente es sólo una ventana con unas cuantas cosas ya empaquetadas.
Simplemente crea una ventana, y luego empaqueta una VBox
en ella, que contiene un separador y luego una HBox
llamada "action_area" ("área de acción").
El control Dialog (Diálogo) se puede usar
para mensajes emergentes para el usuario, y otras tareas similares. Es
realmente básico, y sólo hay una función para la caja de diálogo, que es:
dialog = gtk.Dialog(title=None,parent=None,flags=0,buttons=None)
donde title (título) es el texto usado en la
barra de título, parent (padre) es la ventana principal
de la aplicación y flags establece varios modos de
operación para el diálogo:
DIALOG_MODAL - hace el diálogo modal DIALOG_DESTROY_WITH_PARENT - destruye el diálogo cuando su padre sea destruido DIALOG_NO_SEPARATOR - omite el separador entre la vbox y el área de acción
El argumento buttons (botones) es una tupla
de pares texto de botón y respuesta. Todos los argumentos tienen valores
predeterminados y pueden especificarse usando palabras clave.
Esto creará la caja de diálogo, y ahora depende del desarrollador el usarla. Se podría empaquetar un botón en el área de acción:
button = ... dialog.action_area.pack_start(button, TRUE, TRUE, 0) button.show()
Y se podría añadir, por ejemplo, una etiqueta, al área
vbox usando el empaquetamiento, con algo así:
label = gtk.Label("Los diálogos molan")
dialog.vbox.pack_start(label, TRUE, TRUE, 0)
label.show()
Como ejemplo del uso de una caja de diálogo, se podrían poner dos
botones en el área de acción, un botón de , un
botón de y
una etiqueta en el área vbox, haciendo una pregunta al
usuario, informando de un error, etc. Luego se podrían conectar diferentes
señales a cada botón y realizar la operación que el usuario seleccione.
Si la funcionalidad básica que proporcionan las cajas verticales y horizontales predeterminadas no dan el suficiente control para la aplicación, entonces se puede sencillamente empaquetar otro control dentro de las cajas proporcionadas. Por ejemplo, se podría empaquetar una tabla en la caja vertical.