Colección de citas famosas - Slogan de motivación - GTK2: ¿Cómo asignar dinámicamente una matriz de cadenas?

GTK2: ¿Cómo asignar dinámicamente una matriz de cadenas?

¿Cuál es el segundo parámetro de gtk_clist_append? ¿La primera dirección de una matriz de punteros (cada elemento de la matriz es de tipo char*, es decir, un puntero de cadena)?

#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

GtkWidget * entrada3

GtkWidget * entrada4

anular en _ botón _ hecho clic (widget GTK * widget, datos de gpointer)

{

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;

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");

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*/

}