没有水平滚动条的Gtk.ScrolledWindow

3 投票
1 回答
4302 浏览
提问于 2025-04-17 20:13

我用Python和Gtk3创建了一个Gtk.TreeView,并把它放在一个Gtk.ScrolledWindow里。我不喜欢水平滚动条,所以我用Gtk.PolicyType.NEVER把它去掉了,但现在我就不能在水平方向上调整窗口大小了。

所以我的问题是:怎么才能去掉水平滚动条,同时又能在水平方向上调整窗口的大小呢?

任何帮助都很感谢!

备注:这是我创建ScrolledWindow的方式:

    self.scrolledwindow = Gtk.ScrolledWindow()
    self.scrolledwindow.set_policy(Gtk.PolicyType.NEVER,
                                   Gtk.PolicyType.AUTOMATIC)
    self.add(self.scrolledwindow)

1 个回答

4

解决方案:

问题在于,窗口的宽度不能比Gtk.TreeView中最宽的行还要窄,而且我还希望我的窗口没有水平滚动条。最后解决我问题的代码是:

self.scrolledwindow = Gtk.ScrolledWindow()
self.scrolledwindow.set_policy(Gtk.PolicyType.NEVER,
                               Gtk.PolicyType.AUTOMATIC)

...

renderer_text = Gtk.CellRendererText(weight=600)
renderer_text.set_fixed_size(200, -1)
column_text = Gtk.TreeViewColumn('Name', renderer_text, text=1)

这样一来,Gtk.CellRendererText就有了最小的大小,并且在窗口打开后可以调整大小。

撰写回答