⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testgtk.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 5 页
字号:
      label = gtk_label_new ("This is a Normal label");      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      frame = gtk_frame_new ("Multi-line Label");      label = gtk_label_new ("This is a Multi-line label.\nSecond line\nThird line");      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      frame = gtk_frame_new ("Left Justified Label");      label = gtk_label_new ("This is a Left-Justified\nMulti-line label.\nThird      line");      gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      frame = gtk_frame_new ("Right Justified Label");      label = gtk_label_new ("This is a Right-Justified\nMulti-line label.\nFourth line, (j/k)");      gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_RIGHT);      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      vbox = gtk_vbox_new (FALSE, 5);      gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);      frame = gtk_frame_new ("Line wrapped label");      label = gtk_label_new ("This is an example of a line-wrapped label.  It should not be taking "\			     "up the entire             "/* big space to test spacing */\			     "width allocated to it, but automatically wraps the words to fit.  "\			     "The time has come, for all good men, to come to the aid of their party.  "\			     "The sixth sheik's six sheep's sick.\n"\			     "     It supports multiple paragraphs correctly, and  correctly   adds "\			     "many          extra  spaces. ");      gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      frame = gtk_frame_new ("Filled, wrapped label");      label = gtk_label_new ("This is an example of a line-wrapped, filled label.  It should be taking "\			     "up the entire              width allocated to it.  Here is a seneance to prove "\			     "my point.  Here is another sentence. "\			     "Here comes the sun, do de do de do.\n"\			     "    This is a new paragraph.\n"\			     "    This is another newer, longer, better paragraph.  It is coming to an end, "\			     "unfortunately.");      gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_FILL);      gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);      frame = gtk_frame_new ("Underlined label");      label = gtk_label_new ("This label is underlined!\n"			     "This one is underlined in 泣塑胳の掐脱quite a funky fashion");      gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);      gtk_label_set_pattern (GTK_LABEL (label), "_________________________ _ _________ _ _____ _ __ __  ___ ____ _____");      gtk_container_add (GTK_CONTAINER (frame), label);      gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);    }  if (!GTK_WIDGET_VISIBLE (window))    gtk_widget_show_all (window);  else    gtk_widget_destroy (window);}/* * Reparent demo */static voidreparent_label (GtkWidget *widget,		GtkWidget *new_parent){  GtkWidget *label;  label = gtk_object_get_user_data (GTK_OBJECT (widget));  gtk_widget_reparent (label, new_parent);}static voidset_parent_signal (GtkWidget *child,		   GtkWidget *old_parent,		   gpointer   func_data){  g_print ("set_parent for \"%s\": new parent: \"%s\", old parent: \"%s\", data: %d\n",	   gtk_type_name (GTK_OBJECT_TYPE (child)),	   child->parent ? gtk_type_name (GTK_OBJECT_TYPE (child->parent)) : "NULL",	   old_parent ? gtk_type_name (GTK_OBJECT_TYPE (old_parent)) : "NULL",	   GPOINTER_TO_INT (func_data));}static voidcreate_reparent (void){  static GtkWidget *window = NULL;  GtkWidget *box1;  GtkWidget *box2;  GtkWidget *box3;  GtkWidget *frame;  GtkWidget *button;  GtkWidget *label;  GtkWidget *separator;  if (!window)    {      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);      gtk_signal_connect (GTK_OBJECT (window), "destroy",			  GTK_SIGNAL_FUNC(gtk_widget_destroyed),			  &window);      gtk_window_set_title (GTK_WINDOW (window), "reparent");      gtk_container_set_border_width (GTK_CONTAINER (window), 0);      box1 = gtk_vbox_new (FALSE, 0);      gtk_container_add (GTK_CONTAINER (window), box1);      box2 = gtk_hbox_new (FALSE, 5);      gtk_container_set_border_width (GTK_CONTAINER (box2), 10);      gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);      label = gtk_label_new ("Hello World");      frame = gtk_frame_new ("Frame 1");      gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0);      box3 = gtk_vbox_new (FALSE, 5);      gtk_container_set_border_width (GTK_CONTAINER (box3), 5);      gtk_container_add (GTK_CONTAINER (frame), box3);      button = gtk_button_new_with_label ("switch");      gtk_signal_connect (GTK_OBJECT (button), "clicked",			  GTK_SIGNAL_FUNC(reparent_label),			  box3);      gtk_object_set_user_data (GTK_OBJECT (button), label);      gtk_box_pack_start (GTK_BOX (box3), button, FALSE, TRUE, 0);      gtk_box_pack_start (GTK_BOX (box3), label, FALSE, TRUE, 0);      gtk_signal_connect (GTK_OBJECT (label),			  "parent_set",			  GTK_SIGNAL_FUNC (set_parent_signal),			  GINT_TO_POINTER (42));      frame = gtk_frame_new ("Frame 2");      gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0);      box3 = gtk_vbox_new (FALSE, 5);      gtk_container_set_border_width (GTK_CONTAINER (box3), 5);      gtk_container_add (GTK_CONTAINER (frame), box3);      button = gtk_button_new_with_label ("switch");      gtk_signal_connect (GTK_OBJECT (button), "clicked",			  GTK_SIGNAL_FUNC(reparent_label),			  box3);      gtk_object_set_user_data (GTK_OBJECT (button), label);      gtk_box_pack_start (GTK_BOX (box3), button, FALSE, TRUE, 0);      separator = gtk_hseparator_new ();      gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);      box2 = gtk_vbox_new (FALSE, 10);      gtk_container_set_border_width (GTK_CONTAINER (box2), 10);      gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);      button = gtk_button_new_with_label ("close");      gtk_signal_connect_object (GTK_OBJECT (button), "clicked",				 GTK_SIGNAL_FUNC(gtk_widget_destroy),				 GTK_OBJECT (window));      gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);      GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);      gtk_widget_grab_default (button);    }  if (!GTK_WIDGET_VISIBLE (window))    gtk_widget_show_all (window);  else    gtk_widget_destroy (window);}/* * Saved Position */gint upositionx = 0;gint upositiony = 0;static gintuposition_configure (GtkWidget *window){  GtkLabel *lx;  GtkLabel *ly;  gchar buffer[64];  lx = gtk_object_get_data (GTK_OBJECT (window), "x");  ly = gtk_object_get_data (GTK_OBJECT (window), "y");  gdk_window_get_root_origin (window->window, &upositionx, &upositiony);  sprintf (buffer, "%d", upositionx);  gtk_label_set_text (lx, buffer);  sprintf (buffer, "%d", upositiony);  gtk_label_set_text (ly, buffer);  return FALSE;}static voidcreate_saved_position (void){  static GtkWidget *window = NULL;  if (!window)    {      GtkWidget *hbox;      GtkWidget *main_vbox;      GtkWidget *vbox;      GtkWidget *x_label;      GtkWidget *y_label;      GtkWidget *button;      GtkWidget *label;      GtkWidget *any;      window = gtk_widget_new (GTK_TYPE_WINDOW,			       "type", GTK_WINDOW_TOPLEVEL,			       "signal::configure_event", uposition_configure, NULL,			       "x", upositionx,			       "y", upositiony,			       "title", "Saved Position",			       NULL);      gtk_signal_connect (GTK_OBJECT (window), "destroy",			  GTK_SIGNAL_FUNC (gtk_widget_destroyed),			  &window);      main_vbox = gtk_vbox_new (FALSE, 5);      gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 0);      gtk_container_add (GTK_CONTAINER (window), main_vbox);      vbox =	gtk_widget_new (gtk_vbox_get_type (),			"GtkBox::homogeneous", FALSE,			"GtkBox::spacing", 5,			"GtkContainer::border_width", 10,			"GtkWidget::parent", main_vbox,			"GtkWidget::visible", TRUE,			NULL);      hbox = gtk_hbox_new (FALSE, 0);      gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);      gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);      label = gtk_label_new ("X Origin : ");      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);      gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);      x_label = gtk_label_new ("");      gtk_box_pack_start (GTK_BOX (hbox), x_label, TRUE, TRUE, 0);      gtk_object_set_data (GTK_OBJECT (window), "x", x_label);      hbox = gtk_hbox_new (FALSE, 0);      gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);      gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);      label = gtk_label_new ("Y Origin : ");      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);      gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);      y_label = gtk_label_new ("");      gtk_box_pack_start (GTK_BOX (hbox), y_label, TRUE, TRUE, 0);      gtk_object_set_data (GTK_OBJECT (window), "y", y_label);      any =	gtk_widget_new (gtk_hseparator_get_type (),			"GtkWidget::visible", TRUE,			NULL);      gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0);      hbox = gtk_hbox_new (FALSE, 0);      gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);      gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0);      button = gtk_button_new_with_label ("Close");      gtk_signal_connect_object (GTK_OBJECT (button), "clicked",				 GTK_SIGNAL_FUNC (gtk_widget_destroy),				 GTK_OBJECT (window));      gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 5);      GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);      gtk_widget_grab_default (button);            gtk_widget_show_all (window);    }  else    gtk_widget_destroy (window);}/* * GtkPixmap */static voidcreate_pixmap (void){  static GtkWidget *window = NULL;  GtkWidget *box1;  GtkWidget *box2;  GtkWidget *box3;  GtkWidget *button;  GtkWidget *label;  GtkWidget *separator;  GtkWidget *pixmapwid;  GdkPixmap *pixmap;  GdkBitmap *mask;  if (!window)    {      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);      gtk_signal_connect (GTK_OBJECT (window), "destroy",                          GTK_SIGNAL_FUNC(gtk_widget_destroyed),                          &window);      gtk_window_set_title (GTK_WINDOW (window), "GtkPixmap");      gtk_container_set_border_width (GTK_CONTAINER (window), 0);      gtk_widget_realize(window);      box1 = gtk_vbox_new (FALSE, 0);      gtk_container_add (GTK_CONTAINER (window), box1);      box2 = gtk_vbox_new (FALSE, 10);      gtk_container_set_border_width (GTK_CONTAINER (box2), 10);      gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);      button = gtk_button_new ();      gtk_box_pack_start (GTK_BOX (box2), button, FALSE, FALSE, 0);      pixmap = gdk_pixmap_create_from_xpm (window->window, &mask, NULL,					   "test.xpm");      pixmapwid = gtk_pixmap_new (pixmap, mask);      gdk_pixmap_unref (pixmap);      gdk_pixmap_unref (mask);      label = gtk_label_new ("Pixmap\ntest");      box3 = gtk_hbox_new (FALSE, 0);      gtk_container_set_border_width (GTK_CONTAINER (box3), 2);      gtk_container_add (GTK_CONTAINER (box3), pixmapwid);      gtk_container_add (GTK_CONTAINER (box3), label);      gtk_container_add (GTK_CONTAINER (button), box3);      separator = gtk_hseparator_new ();      gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);      box2 = gtk_vbox_new (FALSE, 10);      gtk_container_set_border_width (GTK_CONTAINER (box2), 10);      gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);      button = gtk_button_new_with_label ("close");      gtk_signal_connect_object (GTK_OBJECT (button), "clicked",                                 GTK_SIGNAL_FUNC(gtk_widget_destroy),                                 GTK_OBJECT (window));      gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);      GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);      gtk_widget_grab_default (button);    }  if (!GTK_WIDGET_VISIBLE (window))    gtk_widget_show_all (window);  else    gtk_widget_destroy (window);}static voidtips_query_widget_entered (GtkTipsQuery   *tips_query,			   GtkWidget      *widget,			   const gchar    *tip_text,			   const gchar    *tip_private,			   GtkWidget	  *toggle){  if (GTK_TOGGLE_BUTTON (toggle)->active)    {      gtk_label_set_text (GTK_LABEL (tips_query), tip_text ? "There is a Tip!" : "There is no Tip!");      /* don't let GtkTipsQuery reset it's label */      gtk_signal_emit_stop_by_name (GTK_OBJECT (tips_query), "widget_entered");    }}static ginttips_query_widget_selected (GtkWidget      *tips_query,			    GtkWidget      *widget,			    const gchar    *tip_text,			    const gchar    *tip_private,			    GdkEventButton *event,			    gpointer        func_data){  if (widget)    g_print ("Help \"%s\" requested for <%s>\n",	     tip_private ? tip_private : "None",	     gtk_type_name (GTK_OBJECT_TYPE (widget)));  return TRUE;}static voidcreate_tooltips (void){  static GtkWidget *window = NULL;  GtkWidget *box1;  GtkWidget *box2;  GtkWidget *box3;  GtkWidget *button;  GtkWidget *toggle;  GtkWidget *frame;  GtkWidget *tips_query;  GtkWidget *separator;  GtkTooltips *tooltip

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -