shino
shino

Reputation: 4734

Why does this pygtk TextView refuse to wrap?

I have a textview inside a scrolledwindow that refuses to wrap to words/chars/wordschars no matter how I set the wrap mode. It simply extends the size of itself and its containers as it pleases. Here's an example:

import gtk

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_default_size(256,256)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
view = gtk.TextView()
view.set_wrap_mode(gtk.WRAP_CHAR)
scroll.add(view)
window.add(scroll)
window.show_all()
gtk.main()

How can I make it wrap? If it matters, I need the parent window to be resizeable by the user, just not the text.

Upvotes: 1

Views: 1284

Answers (2)

Steven T. Snyder
Steven T. Snyder

Reputation: 6177

You need to set the size request on the TextView's container (which is scroll in your example), not the Window or the TextView itself.

Try the following:

import gtk

if __name__ == "__main__":
    window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    scroll = gtk.ScrolledWindow()
    scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
    view = gtk.TextView()
    view.set_wrap_mode(gtk.WRAP_CHAR)
    scroll.set_size_request(256, 256)
    scroll.add(view)
    window.add(scroll)
    window.show_all()
    gtk.main()

Upvotes: 2

dumbmatter
dumbmatter

Reputation: 9663

I just ran your code and word wrapping seems to be working fine. What are you running it on? I'm using PyGTK 2.22 on Ubuntu 11.04.

Upvotes: 0

Related Questions