Red de conocimiento informático - Aprendizaje de programación - Diseño de interfaz de programación GTK

Diseño de interfaz de programación GTK

La API que desea es gtk_container_set_chain.

void GTK _ contenedor _ set _ focus _ chain(GTK contenedor * contenedor

GList * focusable _ widgets

Focusable_widgets es una secuencia de pestañas Lista ordenada); de controles, que deben ser controles secundarios del contenedor. GList debería funcionar.

Si desea establecer el orden de los controles en diferentes contenedores, solo necesita anidarlos; simplemente no puede haber un orden de control cruzado. Implementé un programa simple para demostrar la configuración del orden de las teclas TAB.

Como se muestra a continuación:

# include & ltGTK/GTK

int main(int argc, char *argv[])

{

GTK_init(& argc & argv);

Widget GTK * VENTANA = GTK_WINDOW_new(GTK_Window_Top);

GTK_WINDOW_set_position(GTK_WINDOW(Ventana),GTK_WIN_POS_CENTER);

GTK_WINDOW_set_default_size(GTK_WINDOW(VENTANA), 480, 360);

g_signal_connect(G_OBJECT(ventana), "destruir",

G_CALLBACK(gtk_main_quit), NULL);

GtkWidget * caja = GTK _ caja _ nueva (GTK _ ORIENTACIÓN _ VERTICAL, 5);

GtkWidget * caja 1 = GTK _ caja _ nueva (GTK _ ORIENTACIÓN _ VERTICAL, 5);

GtkWidget * caja 2 = GTK_box_new(GTK_ORIENTATION_VERTICAL, 5);

GTK_CONTAINER_add(GTK_container(ventana),caja);

gtk_box_pack_start( GTK_BOX( box), box1, TRUE, TRUE, 0);

gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0);

GtkWidget *entry1, *entry2 , * entrada3, *entrada4, *entrada5, *entrada6

GList * cadena

entrada 1 = GTK_entry_new();

GTK_ENTRY _ set _ text(GTK _ ENTRY (ENTRADA 1), "ENTRADA 1");

entrada 2 = GTK _ entrada _ nueva();

GTK _ ENTRADA _ set _ text(GTK_ENTRY(ENTRADA 2), "ENTRADA 2");

entrada 3 = GTK_entry_new();

GTK_ENTRY_set_text(GTK _ ENTRY(ENTRADA 3), "ENTRADA 3");

entrada 4 = GTK _ entrada _ new();

GTK _ ENTRY _ set _ text(GTK _ ENTRY( ENTRADA 4), "ENTRADA 4");

entrada 5 = GTK_entry_new();

GTK_ENTRY_set_text(GTK_ENTRY(ENTRY 5), "ENTRY 5");

entrada 6 = GTK_entry_new();

GTK_ENTRY_set_text(GTK_ENTRY( ENTRADA 6),"ENTRADA 6");

p>

GTK_BOX_pack_start(GTK_BOX(CAJA 1),entrada1,verdadero,verdadero,0);

GTK_BOX_pack_start(GTK_BOX(CAJA 1), entrada2, VERDADERO, VERDADERO,

);

GTK_BOX_pack_start (GTK_BOX (CAJA 1), entrada3, VERDADERO, VERDADERO,

GTK_BOX_pack_start(GTK_BOX(CAJA 2), entrada4, VERDADERO, VERDADERO, 0); );

GTK_BOX_pack_start(GTK_BOX(CAJA 2), entrada5, VERDADERO, VERDADERO, 0

GTK_BOX_paquete_inicio (GTK_BOX (CAJA 2), entrada6); , TRUE, TRUE, 0);

/*

* Establezca el siguiente orden de teclas TAB, pero no establezca el orden entre contenedores.

*Por ejemplo, 524136 y 634251 no funcionarán.

*Pero puede ser 132465 o 645312.

* Establezca el orden de las teclas TAB en 564213 a continuación.

*/

/*Primero establece el orden de los dos cuadros GTK*/

chain = NULL

chain=g_list_append( cadena, caja 2);

chain=g_list_append(cadena,caja 1);

GTK_CONTAINER_set_focus_chain(GTK_container(caja),cadena);

g_list_free(cadena) );

/*Establecer el orden de los subcontroles en el cuadro 2 564*/

chain = NULL

chain=g_list_append (cadena, entrada 5);

chain=g_list_append(cadena, entrada 6);

chain=g_list_append(cadena, entrada 4);

GTK _ CONTAINER_set_focus_chain(GTK_container(box2), chain);

g_list_free(chain);

/*Establecer el orden de los subcontroles en el cuadro 1 213*/

chain = NULL

chain=g_list_append(cadena, entrada 2);

chain=g_list_append(cadena, entrada 1);

chain=g_list_append(cadena, entrada 3);

GTK_CONTAINER_set_focus_chain(GTK_CONTAINER(cuadro 1),cadena);

g_list_free(cadena);

gtk_widget_show_all(ventana);

GTK _ main( );

Devuelve 0;

}