Я разработал интерфейс и кнопку с Glade (файл a.glade).Затем я создаю файл языка C (файл ec), чтобы назначить команду кнопке, хотя она не сообщает об ошибке, кнопка не выполняет команду, я что-то упустил в моем файле "ec"?
В файле a.glade:
<object class="GtkButton" id="buttonn">
<property name="label" translatable="yes">OK</property>
<property name="related_action"/>
<property name="width_request">126</property>
<property name="height_request">51</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="margin_left">15</property>
<property name="margin_right">15</property>
<property name="margin_top">15</property>
<property name="margin_bottom">15</property>
<signal name="clicked" handler="on_buttonn_clicked" swapped="no"/>
</object>
В файле ec:
int main(int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
gtk_init(&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "a.glade", NULL);
window = GTK_WIDGET(gtk_builder_get_object(builder, "windoww"));
gtk_builder_connect_signals(builder, NULL);
g_object_unref(builder);
gtk_widget_show(window);
gtk_main();
return 0;
}
и:
// called when button is clicked
void on_buttonn_clicked()
{
char command[50];
strcpy( command, "touch a.txt" );
system(command);
}