我当前的项目使用 aGtk.TreeView
来显示 a 的内容,ListView
每行有四个字段,两个字符串,anint
和 a boolean
。我正在尝试在 TreeView 中实现行的拖放重新排列。我不想简单地TreeView.set_reorderable(True)
用于内置拖放,因为我想对模型中数据的插入和删除有一些控制,并且能够实现拖放操作的撤消/重做。我正在使用 Python 3.2 和 PyGObject 3。
我现在遇到的问题是弄清楚如何在我的drag_data_get
方法中使用两个字符串设置选择数据对象,一个 int 和一个bool
组成要拖放的行。我能够找到的所有示例代码都涉及带有单个列的树视图,其中字符串值被设置到选择中,如下所示:
def drag_data_get_data(self, treeview, context, selection, target_id, etime):
treeselection = treeview.get_selection()
model, iter = treeselection.get_selected()
data = bytes(model.get_value(iter, 0), "utf-8")
selection.set(selection.get_target(), 8, data)
我用我的 TreeView 行之一中的数据设置选择对象的所有努力都失败了。我的模型中的int
andbool
值不能像字符串值一样编码,而且我找不到任何关于如何将多列 TreeView 行的所有值设置为单个选择对象的示例。谁能指出一些相关的例子或文档?