GTK2: ¿Cómo asignar dinámicamente una matriz de cadenas?
#incluye ltgtk/gtk.hgt.
gchar * fila【】= {"ABC . MP4", "23", "816KB/s", "2016-05-21 10:28"}
GTK widget * botón 1;
GtkWidget * botón2
GtkWidget * botón3
Widget GTK * entrada 1;
GtkWidget * entrada2 p>
GtkWidget * entrada3
GtkWidget * entrada4
anular en _ botón _ hecho clic (widget GTK * widget, datos de gpointer)
{ p>
if (botón 1 == widget)
{
GTK_clist_append((GtkCList *)datos, fila);
}
if (botón 2 == widget)
{
int * pArray = (int *) g_malloc 0 (16); // Desde Para jugar dinámicamente, debes solicitar memoria.
pArray[0]=(int)GTK_entry_get_text(entrada 1);
pArray[1]=(int)GTK_entry_get_text(entrada 2);
pArray [2]=(int)GTK_entry_get_text(entrada 3);
pArray[3]=(int)GTK_entry_ get_text(entrada 4);
GTK_clist_append((GtkCList *)datos, (char **)pArray);
g_free(pArray);
}
if (botón 3 = = widget)
{
GTK_clist_clear((GtkCList *)datos);
}
}
int main(int argc, char * argv【 】)/*función principal de entrada de programa*/
{
GtkWidget * ventana/*GtkWidget* definición de puntero de tipo*/
GtkWidget * Fijo; p>
GtkWidget * clist
GTK _init(&argc&argv);/*Inicializar parámetros de línea de comando*/
WINDOW = GTK_WINDOW_new(GTK_Window_Top);/*Crear ventana*/< /p >
GTK_WINDOW_set_title(GTK_WINDOW(Ventana),"GTK arreglado");
GTK_window_set_default_size(GTKWindow(VENTANA), 500, 300);
GTK_WINDOW_set_position(GTK_WINDOW(Ventana) ),GTK_WIN_POS_CENTER);
fijo = GTK_fixed_new() ;
GTK_CONTAINER_add(GTK_container(ventana), fijo);
entrada 1 = GTK_entry_new();
texto de colección de entradas GTK((GTK_ENTRY *) entrada1, "nombre de archivo");
GTK_FIXED_PUT(GTK_FIXED(FIXED), entrada1, 20, 20); GTK_widget_set_size_request(entrada 1, 80, 30);
entrada 2 = GTK_entry_new();
Texto del conjunto de entradas GTK ( (GTK_FIXED(*)entry2,"resource_id"); p>
GTK_FIXED_put(GTK_FIXED(fijo), entrada2, 120, 20);
GTK_ widget_set_size_request(entrada 2, 80, 30
entrada 3 = GTK_entry_new()); ;
Texto del conjunto de entradas GTK ((entrada GTK * ) Entrada 3
, "flujo de código");
GTK_FIXED_put (GTK_FIXED (fijo), entrada 3, 20, 70);
GTK_widget_set_size_request (entrada 3, 80, 30
<); p>entrada 4 = gtk_entry_new();gtk_entry_collection texto ((gtk_entry*) entrada 4, "hora"
GTK_FIXED_put(GTK_FIXED(fijo), entrada4, 120, 70
GTK_widget_set_size_request(entrada 4, 80, 30);
Botón 1 = nueva etiqueta del botón GTK("array add");
GTK_FIXED_put(GTK_FIXED) (FIJO), botón1, 20, 120);
GTK_widget_set_size_request(botón 1, 60, 30);
Botón 2 = nueva etiqueta del botón GTK ("entrada agregada");
p>
GTK_FIXED_put(GTK_FIXED(fijo), botón2, 100, 120);
GTK_widget_set_size_request(botón 2, 60, 30);
Botón); 3 = Nueva etiqueta del botón GTK (excepto "¿eliminar?");
GTK_FIXED_PUT(GTK_FIXED(FIXED), botón3, 180, 120);
GTK_widget_set_size_request(botón 3, 60, 30); );
clist = GTK_clist_new(4);
GTK _FIXED_put(GTK_FIXED(fijo), clist, 220, 20);
GTK_widget_set_size_request(clist, 550 , 100);
GTK_clist_set_column_width((GtkCList*)clist, 0, 100);
GTK_clist_set_column_width((GtkCList*)clist, 1,100);
GTK_clist_set_column_width ((GtkCList*)clist, 2, 100);
GTK_clist_set_column_width((GtkCList*)clist, 3, 100);
G_signal_connect(G_OBJECT(botón 1),"clic" ,
g_CALLBACK(on_button_clicked),(gpointer )clist);
G_signal_connect(G_OBJECT(botón 2), "clic",
g_CALLBACK(on_button_clicke
d), (gpointer) clist);
G_signal_connect(G_OBJECT(botón 3), "clic",
g_CALLBACK(on_button_clicked) ), (gpointer) clist);
G_signal_connect_swapped(G_OBJECT(ventana), "destruir",
g_CALLBACK(GTK_main_quit), NULL);
?
GTK_widget_show_all(window);/*Mostrar todas las ventanas de componentes*/
GTK_main();/*El bucle principal de gtk es similar al bucle de mensajes de Windows* /
Retorno 0; /*Retorno principal*/
}