Re: '.' as a TAB key



Attached one possible implementation.

Am Freitag, den 18.01.2008, 14:19 +0530 schrieb kartikay malhotra:
> Thank you all for your feedback.
> 
> Dear Carlos, how do I make use of the '.' key as a TAB (\t) key? Using
> the tutorial, I am able to print a TAB on the console. But I want to
> use '.' key as a TAB in the GUI. 
> 
> Thanks
> Kartikay
> 
> On Jan 17, 2008 11:09 PM, Carlos Pereira <carlao2005 gmail com> wrote:
>         Hello,
>         
>         Chapter 11 of the excellent book "Foundations of GTK+
>         Development" (Andrew Krause, Apress) shows how to create a
>         custom widget with the functionality you want.
>         
>         There is source code available in www. gtkbook.com
>         
>         Best regards!
>         
>         Carlos
>         
>         
>         2008/1/15 kartikay malhotra <kartikay malhotra gmail com >:
>         
>                 
>                 Dear All,
>                 
>                 I am making an IP address bar in GTK. It would
>                 function as 123 . 445 . 521 . 444. 
>                 
>                 Now friends, I am facing 2 problems: 
>                 
>                 1) How to ensure that only numbers are pressed. I
>                 don't want the user to enter alpha characters. 
>                 2) How to draw points in GTK, without using GNOME?
>                 
>                 Many Thanks for your consideration.
>                 
>                 -- 
>                 Best Regards
>                 Er. Kartikay Malhotra
>                 
>                 
>                 
>                 _______________________________________________
>                 gtk-list mailing list
>                 gtk-list gnome org
>                 http://mail.gnome.org/mailman/listinfo/gtk-list
>                 
>                 
>         
>         
>         
>         -- 
>         =============================================
>         Prof. Carlos José de Almeida Pereira
>         Universidade Estadual de Santa Cruz 
>         Ilhéus - Bahia - Brasil
>         
>         "Quem agora conhece a antiga linguagem da Lua ?
>         Quem agora fala com a Deusa ? ...
>         Só as pedras agora se recordam do que a Lua nos disse há muito
>         tempo,
>         e o que nós aprendemos com as árvores, e as vozes das ervas e
>         dos 
>         cheiros das flores... "
>                                                (Tony Kelly, "Pagan
>         Musings" 1970)
>         
>         http://www.sam.paganfederation.org/index.php?id=13&amp;lang=pt
> 
> 
> 
> -- 
> Best Regards
> Er. Kartikay Malhotra
> 
> 
> 
> "Sure I am this day we are masters of our fate, that the task which
> has been set before us is not above our strength; that its pangs and
> toils are not beyond our endurance. As long as we have faith in our
> own cause and an unconquerable will to win, victory will not be denied
> us." --Winston Churchill 
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-list
-- 
Mathias Hasselmann <mathias hasselmann gmx de>
Openismus GmbH: http://www.openismus.com/
Personal Site: http://taschenorakel.de/
#!/usr/bin/python

import gtk

def cycle_entry(widget):
    box = widget.get_parent()

    position, = box.child_get(widget, 'position')
    position = (position + 2) % 8

    sibling = box.get_children()[position]
    sibling.grab_focus()

    return sibling

def key_press_event_cb(widget, event):
    keyval = gtk.gdk.keyval_name(event.keyval)

    # allow backspace, arrows and friends...
    if not event.string:
        return False

    # allow digits...
    if event.string in '0123456789':
        value = int(widget.get_text() + event.string)

        # cycle when value would become too large, and no text selected
        if (value > 255 and not widget.get_selection_bounds()):
            sibling = cycle_entry(widget)
            sibling.set_text(event.string)
            sibling.set_position(1)

            return True

        # insert the text
        return False

    # cycle on dot...
    if event.string in '.':
        if len(widget.get_text()):
            cycle_entry(widget)

        return True

    # reject all other
    return True

hbox = gtk.HBox(False, 0)

for i in range(4):
    if i:
        hbox.pack_start(gtk.Label('.'), False, True)

    entry = gtk.Entry(3)
    entry.set_width_chars(3)
    entry.connect('key-press-event', key_press_event_cb)
    hbox.pack_start(entry, True, True)

window = gtk.Window()
window.add(hbox)
window.show_all()

window.connect('destroy', gtk.main_quit)

gtk.main()

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]