GTK常用控件之行编辑( GtkEntry )

行编辑,只允许输入一行内容的控件,如密码输入框。



行编辑的创建:

GtkWidget *gtk_entry_new(void);

返回值:行编辑指针


设置行编辑内容的最大长度:

void gtk_entry_set_max_length(GtkEntry *entry, 

gint max);

entry:行编辑

max:长度的最大值,这里填0代表长度不作限制


设置行编辑的文本内容:

void gtk_entry_set_text(GtkEntry *entry,

const gchar *text);

entry:行编辑

text:文本内容


获取行编辑的内容:

const gchar *gtk_entry_get_text(GtkEntry *entry);

entry:行编辑

返回值:获取到的行编辑内容


设置编辑控件是否允许编辑:

void gtk_editable_set_editable(GtkEditable *editable,

gboolean is_editable);

editable:需要操作的控件

is_editable:TRUE代表能允许编辑,默认属性,FALSE不允许编辑


设置行编辑的内容是否可视(不能可视相当于密码模式,看不到文本的内容):

void gtk_entry_set_visibility(GtkEntry *entry,
gboolean visible);

entry:行编辑

visible:TRUE可视,FALSE不可视


常用信号:"activate"

当用户在文本输入控件内部按回车键时引发activate信号;


例子代码如下:

#include  

// 按Enter,获取行编辑的内容
void enter_callback( GtkWidget *widget, gpointer entry ) 
{ 
	const gchar *entry_text; 
	// 获得文本内容
	entry_text = gtk_entry_get_text(GTK_ENTRY(entry)); 
	printf("Entry contents: %s\n", entry_text); 
}
 
int main( int argc, char *argv[] ) 
{ 
	gtk_init (&argc, &argv); 	// 初始化

	GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 	// 创建窗口
	g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
	gtk_widget_set_size_request(window, 200, 50);				// 设置窗口的大小

	GtkWidget *entry = gtk_entry_new();  // 创建行编辑 	
	gtk_container_add(GTK_CONTAINER(window), entry); 	// 表格放入窗口
	gtk_entry_set_max_length(GTK_ENTRY(entry), 100);     // 设置行编辑显示最大字符的长度
	gtk_entry_set_text(GTK_ENTRY(entry), "hello word");  // 设置内容
	//gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); 	 // 密码模式

	/* 如果我们想在用户输入文本时进行响应,可以为activate设置回调函数。
	 * 当用户在文本输入构件内部按回车键时引发Activate信号;
	 */
	g_signal_connect(entry, "activate", G_CALLBACK(enter_callback), entry);

	gtk_widget_show_all(window); // 显示窗口所有控件

	gtk_main(); 		// 主事件循环

	return 0; 
} 


效果运行图如下:



源代码下载请点此处。


你可能感兴趣的:(【图形界面编程】)