GTK经常使用控件之行编辑( GtkEntry )
行编辑,仅仅同意输入一行内容的控件。如password输入框。
行编辑的创建:
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不同意编辑
设置行编辑的内容是否可视(不能可视相当于password模式,看不到文本的内容):
void gtk_entry_set_visibility(GtkEntry *entry,
gboolean visible);
entry:行编辑
visible:TRUE可视,FALSE不可视
经常使用信号:"activate"
当用户在文本输入控件内部按回车键时引发activate信号;
样例代码例如以下:
#include <gtk/gtk.h> void entry_callback(GtkWidget *widget, gpointer entry) { const gchar *entry_text; //获取文本内容 entry_text = gtk_entry_get_text(GTK_ENTRY(entry)); printf("entry content:%s\n", entry_text); return; } int main(int argc, char *argv[]) { //1.gtk环境初始化 gtk_init(&argc, &argv); //2.创建一个window GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //设置窗体大小 gtk_widget_set_size_request(window, 200, 50); g_signal_connect(window,"destroy", G_CALLBACK(gtk_main_quit), NULL); //3.创建一个行编辑 GtkWidget *entry = gtk_entry_new(); gtk_container_add(GTK_CONTAINER(window), entry); //4.设置行编辑显示最大字符的长度 gtk_entry_set_max_length(GTK_ENTRY(entry), 100); //设置行编辑的内容 gtk_entry_set_text(GTK_ENTRY(entry), "hello entry"); //5.当我们在行编辑中敲回车的时候运行的动作 g_signal_connect(entry, "activate", G_CALLBACK(entry_callback), entry); //6.显示全部窗体 gtk_widget_show_all(window); //7.主事件循环 gtk_main(); return 0; }
执行结果:
源代码下载:http://download.csdn.net/download/lianghe_work/8944435