免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4152 | 回复: 3
打印 上一主题 下一主题

如何限制entry里只能输入数字 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-25 18:02 |只看该作者 |倒序浏览
如何限制entry里只能输入数字

谢谢

论坛徽章:
0
2 [报告]
发表于 2007-06-25 19:21 |只看该作者
在回调里面处理一下
gboolean OnInput(GtkWidget *entry, gpointer data)
{
    gchar  cData = 得到当前输入的字符;
    if(cData是数字)
    {
       return FALSE;
    }
    else
    {
       retirm TRUE;
    }
}

论坛徽章:
0
3 [报告]
发表于 2007-06-26 10:15 |只看该作者
谢谢楼上的兄弟
代码已经写出来了,现贴出来和大家分享

  1. #include <gtk/gtk.h>
  2. #include <gdk/gdkkeysyms.h>

  3. gboolean key_filter(GtkWidget *entry, GdkEventKey *event, gpointer data)
  4. {
  5.         switch(event->keyval)
  6.         {
  7.                 case GDK_0:
  8.                 case GDK_1:
  9.                 case GDK_2:
  10.                 case GDK_3:
  11.                 case GDK_4:
  12.                 case GDK_5:
  13.                 case GDK_6:
  14.                 case GDK_7:
  15.                 case GDK_8:
  16.                 case GDK_9:
  17.                 case GDK_KP_0:
  18.                 case GDK_KP_1:
  19.                 case GDK_KP_2:
  20.                 case GDK_KP_3:
  21.                 case GDK_KP_4:
  22.                 case GDK_KP_5:
  23.                 case GDK_KP_6:
  24.                 case GDK_KP_7:
  25.                 case GDK_KP_8:
  26.                 case GDK_KP_9:
  27.                 case GDK_BackSpace:
  28.                 case GDK_Return:
  29.                 case GDK_KP_Enter:
  30.                 case GDK_KP_Space:
  31.                 case GDK_Left:
  32.                 case GDK_Up:
  33.                 case GDK_Right:
  34.                 case GDK_Down:
  35.                 case GDK_Delete:
  36.                 case GDK_Home:
  37.                 case GDK_End:
  38.                 case GDK_Tab:
  39.                         return FALSE;
  40.                 default:
  41.                         return TRUE;
  42.         }
  43. }

  44. int main(int argc, char **argv)
  45. {
  46.         GtkWidget *window;
  47.         GtkWidget *entry;
  48.        
  49.         gtk_init(&argc, &argv);

  50.         window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

  51.         entry = gtk_entry_new();
  52.         g_signal_connect(G_OBJECT(entry),"key-press-event",G_CALLBACK(key_filter),NULL);

  53.         gtk_container_add(GTK_CONTAINER(window), entry);
  54.         gtk_widget_show(entry);

  55.         gtk_widget_show(window);

  56.         gtk_main();

  57.         return 0;
  58. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2007-06-26 20:07 |只看该作者
>> 如何限制entry里只能输入数字

应该使用派生于 GtkEntry 的 GtkSpinButton,而不是再重复实现 GtkSpinButton 已经具有的功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP