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信号;


例子代码如下:

[cpp]  view plain copy
  1. #include <gtk/gtk.h>   
  2.   
  3. // 按Enter,获取行编辑的内容  
  4. void enter_callback( GtkWidget *widget, gpointer entry )   
  5. {   
  6.     const gchar *entry_text;   
  7.     // 获得文本内容  
  8.     entry_text = gtk_entry_get_text(GTK_ENTRY(entry));   
  9.     printf("Entry contents: %s\n", entry_text);   
  10. }  
  11.    
  12. int main( int argc, char *argv[] )   
  13. {   
  14.     gtk_init (&argc, &argv);    // 初始化  
  15.   
  16.     GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);    // 创建窗口  
  17.     g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);  
  18.     gtk_widget_set_size_request(window, 200, 50);               // 设置窗口的大小  
  19.   
  20.     GtkWidget *entry = gtk_entry_new();  // 创建行编辑     
  21.     gtk_container_add(GTK_CONTAINER(window), entry);    // 表格放入窗口  
  22.     gtk_entry_set_max_length(GTK_ENTRY(entry), 100);     // 设置行编辑显示最大字符的长度  
  23.     gtk_entry_set_text(GTK_ENTRY(entry), "hello word");  // 设置内容  
  24.     //gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);     // 密码模式  
  25.   
  26.     /* 如果我们想在用户输入文本时进行响应,可以为activate设置回调函数。 
  27.      * 当用户在文本输入构件内部按回车键时引发Activate信号; 
  28.      */  
  29.     g_signal_connect(entry, "activate", G_CALLBACK(enter_callback), entry);  
  30.   
  31.     gtk_widget_show_all(window); // 显示窗口所有控件  
  32.   
  33.     gtk_main();         // 主事件循环  
  34.   
  35.     return 0;   
  36. }   


效果运行图如下:



源代码下载请点此处。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值