我想显示139列* 121行图像映射。
(图像尺寸为32 * 32像素)
我使用gtk.Iconview
加gtk.ListStore
我填充gtk.gdk.Pixbuf
,如下所示:
(二维graph
列表包含包含要显示的图像路径的对象
pixbuf_passage = gtk.gdk.pixbuf_new_from_xpm_data(xpmdata)
for row in graph :
for col in row :
pixbuf = gtk.gdk.pixbuf_new_from_file(col.img_base)
if col.passage :
pixbuf_passage.composite(pixbuf, 0, 0, pixbuf_passage.props.width, pixbuf_passage.props.height, 0, 0, 1.0, 1.0, gtk.gdk.INTERP_BILINEAR, 255)
self.grid.listStore.append([pixbuf, tooltip])
我的问题是图像加载时间可能很长,具体取决于计算机的配置:
有没有办法加快图片加载? 也许在这里使用gtk.Iconview不是最佳的?
由于
答案 0 :(得分:1)
PyGTK FAQ有一些提示。最重要的似乎是你应该冻结treeview / iconview并暂时取消设置其模型,同时添加大量条目。
treeview.freeze_child_notify()
treeview.set_model(None)
# Add rows to the model
# ...
treeview.set_model(model)
treeview.thaw_child_notify()
使用g_idle_add的技巧对于增加对UI的响应性也很有用。