gpt4 book ai didi

python - PyGTK TreeView : Prevent last column from growing

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:22 26 4
gpt4 key购买 nike

我正在尝试制作一个具有四列的 gtk.TreeView,其中前两列可以调整大小,而后两列则不能。换句话说,我希望第三列和第四列占据固定的空间量,并且希望第一列和第二列以用户想要的任何比例共享剩余空间。

我的问题是我无法阻止最后一列的增大和缩小。下面的代码应该突出显示这个问题:如果您运行此代码并尝试调整第一列或第二列的大小,最后一列将弥补差异。

我知道我想要的东西可以实现,因为我见过其他 GTK GUI 可以做到这一点。两个例子是 Glade 中的“信号”对话框和 quodlibet 中的“歌曲列表”。感谢您提供有关如何实现此功能的任何想法。

import pygtk; pygtk.require('2.0')
import gtk
import pango

window = gtk.Window()
model = gtk.TreeStore(object)
view = gtk.TreeView(model)

columns = [
('first', True),
('second', True),
('third', False),
('fourth', False),
]
rows = [
{
'first': 'Lorem ipsum dolor sit amet',
'second': 'consectetur adipiscing elit',
'third': 'Nam justo sem',
'fourth': 'malesuada ut ultricies ac',
}, {
'first': 'Praesent sit amet nibh turpis',
'second': 'vitae lacinia metus',
'third': 'Ut nisi lacus',
'fourth': 'pretium a diam',
}
]
for row in rows:
model.append(None, (row,))

def cell_data_func(column, renderer, model, iter, field):
text = model.get_value(iter, 0)[field]
renderer.set_property('text', text)

for field, expand in columns:
text_renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn(field, text_renderer)
column.set_cell_data_func(text_renderer, cell_data_func, field)

if expand:
column.set_expand(True)
column.set_resizable(True)
text_renderer.set_property('ellipsize', pango.ELLIPSIZE_END)
else:
column.set_expand(False)
column.set_resizable(False)

view.append_column(column)

window.set_default_size(700, -1)
window.add(view)
window.show_all()
window.connect('destroy', lambda *args: gtk.main_quit())

gtk.main()

最佳答案

添加第五列,无需任何文本,可以扩展功能并享受:)

.
.
.
columns = [
('first', True),
('second', True),
('third', False),
('fourth', False),
('', True),
]
.
.
.

关于python - PyGTK TreeView : Prevent last column from growing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27474814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com