Как назначить команду для кнопки GTK Glade? - PullRequest
1 голос
/ 20 июня 2019

Я разработал интерфейс и кнопку с 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);
}

1 Ответ

0 голосов
/ 20 июня 2019

@ DavidCollins Привет!Спасибо за вашу помощь.Я попытался добавить флаг в мой скомпилированный код, и это сработало.Я добавил флаг -rdynamic, полностью скомпилированный код:

gcc -rdynamic -no-pie -Wall -g -o e e.c `pkg-config --cflags --libs gtk+-3.0`

Спасибо за вашу помощь.

...