GTk3 python Gtk.CellRendererText() - >警告拒绝添加相同的单元格渲染器

时间:2014-08-14 12:07:48

标签: python python-3.x gtk3

正如标题所说:一个看似不错的小片段会产生3个警告:

Gtk-WARNING **: Refusing to add the same cell renderer to a GtkCellAreaBox twice

代码:

from gi.repository import Gtk
renderers = {}
for ix, col in enumerate(['vendor', 'conf', 'supports']):
    renderers[col] = Gtk.CellRendererText()
    column = Gtk.TreeViewColumn(col, renderers[col], text=ix)
    column.pack_start(renderers[col], True)

无论如何它似乎在它的自然环境中起作用,但我对这些警告并不满意......用python2和python3测试,没有区别(如预期的那样)

Gtk版本: gtk3-3.10.6-1.fc20.i686

那里有任何暗示吗?

- 艾力

1 个答案:

答案 0 :(得分:0)

只需使用1个Gtk.CellRenderer,除非您希望在不同的渲染器上添加特定属性。

关于警告问题,文档说(如果我没记错的话),实例化Gtk.TreeViewColumn(* args)等于:

  1. Gtk.TreeViewColumn.set_title(title)
  2. Gtk.TreeViewColumn.pack_start(渲染器,布尔)
  3. Gtk.TreeViewColumn.set_attributes(* args)>我认为,在python绑定上没有这个功能。
  4. 所以,警告实际上是正确的,你确实打了两次渲染器,通过调用" pack"方法再次。 只需删除Gtk.TreeViewColumn.pack_start / end方法。