Varios componentes de componentes GTK

Varios componentes de componentes GTK

1. etiqueta de etiqueta

  Las etiquetas son los widgets más utilizados en GTK y, en realidad, son bastante simples. Dado que no hay una ventana X asociada, la etiqueta no puede elevar la señal. Si necesita obtener o generar una señal, puede colocarla en un cuadro de evento o dentro del widget de botón.

1.1 Funciones de interfaz relacionadas

/*创建标签*/
GtkWidget*gtk_label_new (const gchar *str);
GtkWidget*gtk_label_new_with_mnemonic (const gchar *str)
/*设置标签对齐方式*/
void gtk_label_set_justify (GtkLabel *label,GtkJustification jtype);
  jtype参数:
    GTK_JUSTIFY_LEFT,//左对齐
    GTK_JUSTIFY_RIGHT,//右对齐
    GTK_JUSTIFY_CENTER,//居中
GTK_JUSTIFY_FILL//充满
/*获取标签内容*/
const gchar *gtk_label_get_label (GtkLabel *label)
/*设置标签自动换行*/
void gtk_label_set_line_wrap (GtkLabel *label,gboolean wrap)
/*添加下划线*/
voidgtk_label_set_pattern (GtkLabel *label,const gchar *pattern)

1.2 Ejemplo de etiqueta

inserte la descripción de la imagen aquí

#include <gtk/gtk.h>
gint window_event_callback(GtkWidget *widget,gpointer data)
{
    
    
	g_print("close window\n");
	return FALSE;
}
void Window_close_callback(GtkObject *obj)
{
    
    
	gtk_main_quit();
}
int main(int argc,char **argv)
{
    
    

	GtkWidget *window;
	GtkWidget *hbox,*vbox;
	GtkWidget *frame;
	GtkWidget *label;
	gtk_init(&argc,&argv);
	window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"GTK");
	gtk_container_set_border_width(GTK_CONTAINER(window),2);
	g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(window_event_callback),NULL);
	g_signal_connect_swapped(G_OBJECT(window),"destroy",G_CALLBACK(Window_close_callback),NULL);

	/*创建盒*/
	hbox=gtk_hbox_new(FALSE,2);
	vbox=gtk_vbox_new(FALSE,2);
	/*将横向盒添加到窗口*/
	gtk_container_add(GTK_CONTAINER(window),hbox);
	/*将纵向盒放入横向盒中*/
	gtk_box_pack_start(GTK_BOX(hbox),vbox,FALSE,FALSE,2);
	/*创建一个框架构件*/
	frame=gtk_frame_new("标签1");
	label=gtk_label_new("这是一个框构件!");
   /*添加下划线*/
	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);

	/*创建框架构件*/
	frame=gtk_frame_new("名言");
	label=gtk_label_new("与其临渊羡鱼,\n    不如退而结网!");
	gtk_container_add(GTK_CONTAINER(frame),label);
	gtk_box_pack_start(GTK_BOX(vbox),frame,FALSE,FALSE,0);

	/*创建框架构件*/
	frame=gtk_frame_new("左对齐");
	label=gtk_label_new("种一棵树最好的时间时十年前,\n"
						"其次是现在。");
	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("右对齐");
	label=gtk_label_new("GTK 标签\n右对齐示例");
	gtk_container_add(GTK_CONTAINER(frame),label);
	gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_RIGHT);
	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,5);
	frame=gtk_frame_new("将进酒");
	/*设置轮廓样式*/
	gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_ETCHED_OUT);
	label=gtk_label_new("李白\n"

		"君不见黄河之水天上来,奔流到海不复回。\n"
		"君不见高堂明镜悲白发,朝如青丝暮成雪。\n"
		"人生得意须尽欢,莫使金樽空对月。\n"
		"天生我材必有用,千金散尽还复来。\n"
		"天生我材必有用,千金散尽还复来。\n"
		"烹羊宰牛且为乐,会须一饮三百杯。\n"
		"岑夫子,丹丘生,将进酒,杯莫停。\n"
		"与君歌一曲,请君为我倾耳听。\n"
		"钟鼓馔玉不足贵,但愿长醉不愿醒。\n"
		"古来圣贤皆寂寞,惟有饮者留其名。\n"
		"陈王昔时宴平乐,斗酒十千恣欢谑。\n"
		"主人何为言少钱,径须沽取对君酌。\n"
		"五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。");
	gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_CENTER);
	gtk_container_add(GTK_CONTAINER(frame),label);
	gtk_box_pack_start(GTK_BOX(vbox),frame,FALSE,FALSE,0);
	
	gtk_widget_show_all(window);
	gtk_main();
	return 0;
}

2. Flechas

  El widget Flecha dibuja una flecha, apuntando en varias direcciones diferentes y con varios estilos diferentes. Comúnmente utilizado para crear botones con flechas en muchas aplicaciones. Al igual que el widget de etiqueta, no puede generar señales.

/*创建箭头*/
GtkWidget*gtk_arrow_new (GtkArrowType arrow_type,GtkShadowType shadow_type);
形参:
     arrow_type  --箭头方向
         GTK_ARROW_UP,  --上
         GTK_ARROW_DOWN,  --下
         GTK_ARROW_LEFT,  --左
         GTK_ARROW_RIGHT, --右
         GTK_ARROW_NONE  --无箭头
         shadow_type  --箭头风格
/*设置箭头属性*/
gtk_arrow_set(GtkArrow * arrow, GtkArrowType arrow_type, GtkShadowType shadow_type)

2.1 Ejemplo de flecha

inserte la descripción de la imagen aquí
  Cree la flecha, coloque la flecha en el botón, cree un cuadro de ensamblaje, coloque el botón en el cuadro.

#include <gtk/gtk.h>
gint window_event_callback(GtkWidget *widget,gpointer data)
{
    
    
	g_print("close window\n");
	return FALSE;
}
void Window_close_callback(GtkObject *obj)
{
    
    
	gtk_main_quit();
}
/*创建一个带箭头的按钮
GtkArrowType --箭头方向
GtkShadowType --箭头轮廓
返回值:返回按钮对象

*/
GtkWidget *gtk_Arrow_button_create(GtkArrowType arrow_type,GtkShadowType shadow_type)
{
    
    
	GtkWidget *button;
	GtkWidget *arrow;
	/*1.创建按钮*/
	button=gtk_button_new();
	/*创建箭头*/
	arrow=gtk_arrow_new(arrow_type, shadow_type);
	/*将箭头放入按钮中*/
	gtk_container_add(GTK_CONTAINER(button),arrow);
	gtk_widget_show(arrow);
	gtk_widget_show(arrow);
	return button;
}
int main(int argc,char **argv)
{
    
    

	GtkWidget *window;
	GtkWidget *hbox;
	GtkWidget *button;
	gtk_init(&argc,&argv);
	window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"GTK");
	gtk_container_set_border_width(GTK_CONTAINER(window),2);
	g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(window_event_callback),NULL);
	g_signal_connect_swapped(G_OBJECT(window),"destroy",G_CALLBACK(Window_close_callback),NULL);
	/*1.创建横向盒*/
	hbox=gtk_hbox_new(FALSE,0);
	//将盒添加到窗口
	gtk_container_add(GTK_CONTAINER(window),hbox);
	/*2.创建带箭头按钮*/
	button=gtk_Arrow_button_create(GTK_ARROW_UP,GTK_SHADOW_IN);
	gtk_box_pack_start(GTK_BOX(hbox),button, TRUE,FALSE,5);

	button=gtk_Arrow_button_create(GTK_ARROW_DOWN,GTK_SHADOW_OUT);
	gtk_box_pack_start(GTK_BOX(hbox),button, TRUE,FALSE,5);

	button=gtk_Arrow_button_create(GTK_ARROW_LEFT,GTK_SHADOW_ETCHED_IN);
	gtk_box_pack_start(GTK_BOX(hbox),button, TRUE,FALSE,5);

	button=gtk_Arrow_button_create(GTK_ARROW_RIGHT,GTK_SHADOW_ETCHED_OUT);
	gtk_box_pack_start(GTK_BOX(hbox),button, TRUE,FALSE,5);
	
	gtk_widget_show_all(window);
	gtk_main();
	return 0;
}

3 El objeto Tooltips El objeto Tooltips

  La información sobre herramientas son cadenas de texto que aparecen cuando el puntero del mouse se mueve sobre un botón u otro componente y permanece allí durante unos segundos.
  Los widgets que no reciben eventos (widgets que no tienen su propia ventana X) no pueden funcionar con objetos de información sobre herramientas. Los objetos de información sobre herramientas se pueden crear utilizando la función gtk_tooltips_new(). Debido a que el objeto GtkTooltips se puede reutilizar, generalmente solo es necesario llamar a esta función una vez en la aplicación.

3.1 Funciones de interfaz relacionadas

/*创建工具提示对象,创建成功默认已经激活*/
GtkTooltips *gtk_tooltips_new( void );
/*设置提示信息*/
void gtk_tooltips_set_tip( GtkTooltips *tooltips,GtkWidget *widget,const 
gchar *tip_text,const gchar *tip_private );
形参:tooltips  --创建的工具提示对象
      widget  --要设置提示信息的构件
      tip_text  --提示的内容
      tip_private --标识符的文本串,当用GtkTipsQuery实现上下文敏感的帮助时要引用该标识符。目前,你可以把它设置为 NULL/*激活已经禁用的工具提示对象*/
void gtk_tooltips_enable( GtkTooltips *tooltips);
/*禁用已经激活的工具提示对象*/
void gtk_tooltips_disable( GtkTooltips *tooltips ); 
/*改变工具提示的延迟时间*/
void gtk_tooltips_set_delay(GtkTooltips *tooltips,guint delay);

3.2 Ejemplos

#include <gtk/gtk.h>
gint window_event_callback(GtkWidget *widget,gpointer data)
{
    
    
	g_print("close window\n");
	return FALSE;
}
void Window_close_callback(GtkObject *obj)
{
    
    
	gtk_main_quit();
}

int main(int argc,char **argv)
{
    
    
	GtkWidget *window;
	GtkWidget *button;
	GtkTooltips *tiptool;
	gtk_init(&argc,&argv);
	window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"GTK");
	gtk_container_set_border_width(GTK_CONTAINER(window),2);
	g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(window_event_callback),NULL);
	g_signal_connect_swapped(G_OBJECT(window),"destroy",G_CALLBACK(Window_close_callback),NULL);
	/*1.创建按钮*/
	button=gtk_button_new_from_stock(GTK_STOCK_QUIT);
	gtk_container_add(GTK_CONTAINER(window),button);
	/*创建提示对象工具*/
	tiptool=gtk_tooltips_new();
	/*添加提示信息到按钮*/
	gtk_tooltips_set_tip(tiptool,button,"退出按钮",NULL);

	gtk_widget_show_all(window);
	gtk_main();
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44453694/article/details/127399273
Recomendado
Clasificación