On Sun, 2006-08-20 at 19:40 -0400, Mike Bernson wrote: > It look like I cannot do what I want. > > That is remove the insert cursor from an entry widget that can get the > focus but does not allow editing. I want to be able to stop off while > tabbing thought the screen at the entry widget but attach signal handler > to grab the input character and use them for something else other then > altering the display. When I am doing this I have a message in the text > area tilling the use what to do.
Then that isn't a Gtk.EntryBox. You want to construct a custom widget that looks similar to a Gtk.EntryBox but behaves differently. How about wrapping a Gtk.EntryBox in a Gtk.EventArea? > I have it all working except removing the insert cursor. Since it is not > a window/X11 cursor but is draw by the entry using a helper function in > the style that I do not have access to I was looking for a way around > having the insert cursor show up. It's up to the style (indeed, the theme engine) how to draw the widget. Second-guessing the theme engine isn't a good long-term strategy. Ed > Entry widget uses gtk_draw_insertion_cursor inside the gtkstyle. I see > no way of accessing this function/method from python. > > Here is the header from that function: > /** > * gtk_draw_insertion_cursor: > * @widget: a #GtkWidget > * @drawable: a #GdkDrawable > * @area: rectangle to which the output is clipped, or %NULL if the > * output should not be clipped > * @location: location where to draw the cursor (@location->width is > ignored) > * @is_primary: if the cursor should be the primary cursor color. > * @direction: whether the cursor is left-to-right or > * right-to-left. Should never be #GTK_TEXT_DIR_NONE > * @draw_arrow: %TRUE to draw a directional arrow on the > * cursor. Should be %FALSE unless the cursor is split. > * > * Draws a text caret on @drawable at @location. This is not a style > function > * but merely a convenience function for drawing the standard cursor shape. > * > * Since: 2.4 > **/ > void > gtk_draw_insertion_cursor (GtkWidget *widget, > GdkDrawable *drawable, > GdkRectangle *area, > GdkRectangle *location, > gboolean is_primary, > GtkTextDirection direction, > gboolean draw_arrow) > > > Edward Catmur wrote: > > On Sun, 2006-08-20 at 18:10 -0400, Mike Bernson wrote: > >> I set use the following to make the widget uneditable. > >> > >> widget.props.editable = False > >> > >> widget is gtk.Entry widget has an Editable interface and this should set > >> the widget to non-editable. > >> > >> The entry widget does not allow any edit which I thought should also > >> turn off the insert cursor. This is not the case > >> > >> Here is a simple program that show the problem > >> > >> import gtk > >> > >> window = gtk.Window() > >> entry = gtk.Entry() > >> entry.props.editable = False > >> window.add(entry) > >> window.show_all() > >> > >> gtk.main() > > > > Ah, yeah. Use > > > > entry.props.editable = False > > entry.props.can_focus = False > > entry.props.has_focus = False > > > > Alternatively if you want to prevent selecting text and copying the > > entry content, just use > > > > entry.props.sensitive = False > > > > However the latter is not to be preferred; allowing users to select and > > copy text is more friendly. > > > > > > Ed > > _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
