【发布时间】:2016-08-15 15:06:19
【问题描述】:
请帮我创建按钮数组。这是我到目前为止所做的,但我相信我做错了,因为我的程序没有按应有的方式运行。
/*array is here*/
GtkWidget *button[2];
int i;
for (i=0; i<2; i++)
{
button[i]=gtk_button_new();
}
button[0] = gtk_button_new_with_label ("Run shellscript");
g_signal_connect (button[0], "clicked",
G_CALLBACK (callback), "shellscript");
gtk_box_pack_start (GTK_BOX (box1), button[0], TRUE, TRUE, 0);
gtk_widget_show(button[0]);
button[1] = gtk_button_new_with_label ("Run program2 ");
g_signal_connect (button[1], "clicked",
G_CALLBACK (callback), "program2");
gtk_box_pack_start (GTK_BOX (box1), button[1], TRUE, TRUE, 0);
gtk_widget_show(button[1]);
【问题讨论】:
-
它应该如何运行?以及它是如何运行的?
-
嗯基本上它根本不运行,原因在数组中,因为当我刚刚使用 gtkWidget *button1; GtkWidget *button2;一切正常,,,现在它没有数组
-
请发Minimal, Complete, and Verifiable example 并尝试更好地缩进您在问题中输入的代码。
-
如果你的程序甚至没有编译,它怎么能运行?我怀疑
For (i=...编译。 -
你有一个泄漏。首先,您创建一个按钮并将指向它的指针分配给数组的每个元素。然后创建 另一个 按钮并重新分配数组中的指针,使您在循环中使用
gtk_new_button创建的第一个按钮无法访问。
标签: c arrays button gtk parameter-passing