为什么这个pygtk TextView不进行换行?
我有一个文本框放在一个可滚动的窗口里,不管我怎么设置换行模式,它就是不换行。它总是自己扩展大小,搞得它和它的容器都变得很大。下面是一个例子:
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()
我该怎么让它换行呢?如果有影响的话,我需要用户可以调整父窗口的大小,但文本框的大小不想变。
2 个回答
0
我刚刚运行了你的代码,文字换行看起来没问题。你是在什么环境下运行的呢?我是在Ubuntu 11.04上用的PyGTK 2.22。
2
你需要在TextView
的容器上设置大小请求(在你的例子中是scroll
),而不是在Window
或TextView
本身上。
试试下面的代码:
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()