Python 在PyGtk中设置GTKTreeview时出现问题
我在一个扩展了Python 在PyGtk中设置GTKTreeview时出现问题,python,gtk,pygtk,gtktreeview,Python,Gtk,Pygtk,Gtktreeview,我在一个扩展了gtk.TreeView的类中有一些代码,这是init方法。我想创建一个有3列的树视图。一个切换按钮、一个标签和一个下拉框,用户可以在其中键入内容。下面的代码可以工作,除了切换按钮不会对鼠标单击做出反应,并且不会绘制标签和ComboEntry。(所以我想你可以说它不起作用)。但是,我可以添加行 #make storage enable/disable label user entry self.tv_store = gtk
gtk.TreeView
的类中有一些代码,这是init
方法。我想创建一个有3列的树视图。一个切换按钮、一个标签和一个下拉框,用户可以在其中键入内容。下面的代码可以工作,除了切换按钮不会对鼠标单击做出反应,并且不会绘制标签和ComboEntry。(所以我想你可以说它不起作用)。但是,我可以添加行
#make storage enable/disable label user entry
self.tv_store = gtk.TreeStore(gtk.ToggleButton, str, gtk.ComboBoxEntry)
#make widget
gtk.TreeView.__init__(self, self.tv_store)
#make renderers
self.buttonRenderer = gtk.CellRendererToggle()
self.labelRenderer = gtk.CellRendererText()
self.entryRenderer = gtk.CellRendererCombo()
#make columns
self.columnButton = gtk.TreeViewColumn('Enabled')
self.columnButton.pack_start(self.buttonRenderer, False)
self.columnLabel = gtk.TreeViewColumn('Label')
self.columnLabel.pack_start(self.labelRenderer, False)
self.columnEntry = gtk.TreeViewColumn('Data')
self.columnEntry.pack_start(self.entryRenderer, True)
self.append_column(self.columnButton)
self.append_column(self.columnLabel)
self.append_column(self.columnEntry)
self.tmpButton = gtk.ToggleButton('example')
self.tmpCombo = gtk.ComboBoxEntry(None)
self.tv_store.insert(None, 0, [self.tmpButton, 'example label', self.tmpCombo])
首先,您需要创建一个包含
bool
、str
和str
列的模型,而不是现在这样做。其次,需要从适当的模型列绑定渲染器的属性,例如
self.columnButton = \
gtk.TreeViewColumn ('Enabled', self.buttonRenderer,
active = 0) # 0 is the tree store column index
然后需要将渲染器上的editable
属性设置为True
。最后,您需要自己处理信号(更改
或编辑完成
,具体取决于渲染器类型),并相应地更新存储
使用一些助手可能更容易,例如。
-这里甚至有一个编辑树的例子。首先,您需要创建一个包含
bool
、str
和str
列的模型,而不是您现在所做的方式。其次,需要从适当的模型列绑定渲染器的属性,例如
self.columnButton = \
gtk.TreeViewColumn ('Enabled', self.buttonRenderer,
active = 0) # 0 is the tree store column index
然后需要将渲染器上的editable
属性设置为True
。最后,您需要自己处理信号(更改
或编辑完成
,具体取决于渲染器类型),并相应地更新存储
使用一些助手可能更容易,例如。
-这里甚至有一个编辑树的示例。只需连接gtk.cellRenderToggle中的
切换的
信号,当您单击它时,它将发出该信号,然后在回调中更改模型中的值
ej
self.model
是与树视图相关的模型,只需连接gtk.cellRenderToggle中的切换的
信号,当您单击它时,它将发出该信号,然后在回调中更改模型中的值
ej
self.model
模型是否与treeview关联,err,append_列表示gtk。treeview仅接受1个参数,否?err,append_列表示gtk。treeview仅接受1个参数,否?