簡體   English   中英

如何在Gtk +中使用C在GUI窗口中同時放置按鈕和文本框?

[英]How do I put both a button and a Textbox in GUI window using C in Gtk+?

我在嘗試為CentOs6.6操作系統開發GUI程序時嘗試使用帶有C的Gtk +創建按鈕和文本輸入框時遇到以下問題。請提出建議的解決方案來幫助我。

#include <gtk/gtk.h>

int main(int argc, char *argv[]) {

      GtkWidget *window;
      GtkWidget *fixed;
      GtkWidget *table;
      GtkWidget *label1;
      GtkWidget *entry1;
      GtkWidget *button;

  gtk_init(&argc, &argv);

     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
     gtk_window_set_title(GTK_WINDOW(window), "GUI Window");
     gtk_container_set_border_width(GTK_CONTAINER(window), 10);
     gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);

     table = gtk_table_new(3, 2, FALSE);
     gtk_container_add(GTK_CONTAINER(window), table);

     label1 = gtk_label_new("IP Address");

     gtk_table_attach(GTK_TABLE(table), label1, 0, 1, 0, 1, 
      GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 5, 5);

     entry1 = gtk_entry_new();
     gtk_table_attach(GTK_TABLE(table), entry1, 1, 2, 0, 1, 
     GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 5, 5);


      gtk_widget_show(table);

      gtk_widget_show(label1);

      gtk_widget_show(entry1);

      gtk_widget_show(window);

      g_signal_connect(window, "destroy",
      G_CALLBACK(gtk_main_quit), NULL);


     button = gtk_button_new_with_label ("click");
 //gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
                              // GTK_SIGNAL_FUNC (destroy), NULL);

   // gtk_table_attach(GTK_TABLE(table), button, 0,1,1,2);
    gtk_widget_show(button); 



     fixed = gtk_fixed_new();
     gtk_container_add(GTK_CONTAINER(window), fixed);

     button = gtk_button_new_with_label("Quit");

      gtk_fixed_put(GTK_FIXED(fixed), button, 50, 50);
      gtk_widget_set_size_request(button, 80, 35);

      g_signal_connect(G_OBJECT(button), "clicked", 
      G_CALLBACK(gtk_main_quit), G_OBJECT(window));

     g_signal_connect_swapped(G_OBJECT(window), "destroy", 
      G_CALLBACK(gtk_main_quit), NULL);

     gtk_widget_show_all(window);


     gtk_main();

     return 0;
    }

問題:

(finaly:18427): Gtk-WARNING **: Attempting to add a widget with type GtkFixed to a GtkWindow, but as a GtkBin subclass a GtkWindow   can only contain one widget at a time; it already contains a widget of type GtkTable.

錯誤消息是您一次只能將一個小部件添加到GtkWindow。 您已經在GtkTable和GtkFixed中存儲了多個小部件。 您應該能夠使用另一個容器(例如GtkBox)將這兩個容器存儲在窗口中。

暫無
暫無

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

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