[pygtk] GtkEntry & the insert_text signal

=?iso-8859-1?Q?St=E9phane_Leibovitsch?= stephane.leibovitsch@mail.dotcom.fr
Sun, 11 Jun 2000 16:36:39 +0200


Hello everybody,

I'm trying to write a program with automatic completion in
GtkEntries,so I wrote a signal handler for the signal "insert_text"

def on_txt_changed(widget, input, length, pos):
  list = ["xyz","abc","def"]

  # We concatenate the last character entered by the user with
  # the beginning of the text.

  input = input[:length]
  position = widget.get_position() + 1
  to_complete = widget.get_text()[:position]
  to_complete = "%s%c" % (to_complete[0:position-1], input)


	# We look for the text in the list

  for text in list:
    index =  string.find(text,to_complete)
    if index == 0: 				# We have found the right text
      widget.signal_handler_block(signal_id)
      widget.set_text( auteur )
      widget.signal_handler_unblock(signal_id)
      widget.emit_stop_by_name("insert_text")
      break



But the cursor is always before the first character of the entry, and
I'd like to move it after what the user typed. Example :

the user type "a", so the text is completed as "abc" and I'd like the
cursor to be after the "a" rather than at the beginning.

I tried with widget.set_position() but it doesn't work.
I also wonder what to do with the last parameter of the handler "pos"
which is a PyCObject, translated in C by a gint *.

By the way, I am a beginner at both Python and Gnome/Gtk+ !

Thanks,

	Stephane

-- 
Stéphane Leibovitsch
stephane.leibovitsch@mail.dotcom.fr