正如标题所说:一个看似不错的小片段会产生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
那里有任何暗示吗?
- 艾力
答案 0 :(得分:0)
只需使用1个Gtk.CellRenderer,除非您希望在不同的渲染器上添加特定属性。
关于警告问题,文档说(如果我没记错的话),实例化Gtk.TreeViewColumn(* args)等于:
所以,警告实际上是正确的,你确实打了两次渲染器,通过调用" pack"方法再次。 只需删除Gtk.TreeViewColumn.pack_start / end方法。