簡體   English   中英

如何為Glade的GTK按鈕分配命令?

[英]How to assign a command for a GTK button of Glade?

我使用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);
}

@DavidCollins嗨! 謝謝你的幫助。 我嘗試在已編譯的代碼中添加一個標志,並且它起作用了。 我添加了-rdynamic標志,完全編譯的代碼是:

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

謝謝你的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM