Python 如何删除pygtk中的父复选框
我在pygtk中创建了一个树洞。一切都很好,唯一的问题是,我不想要专利。你可以在下图中看到Python 如何删除pygtk中的父复选框,python,python-2.7,treeview,gtk,pygtk,Python,Python 2.7,Treeview,Gtk,Pygtk,我在pygtk中创建了一个树洞。一切都很好,唯一的问题是,我不想要专利。你可以在下图中看到 Computer1 [ ]-----This checkbox I don't want C drive [ ] D drive [ ] E drive [ ] 我写的代码是 self.view = gtk.TreeView( model ) self.renderer = gtk.CellRendererText() self.renderer.set_property( 'e
Computer1 [ ]-----This checkbox I don't want
C drive [ ]
D drive [ ]
E drive [ ]
我写的代码是
self.view = gtk.TreeView( model )
self.renderer = gtk.CellRendererText()
self.renderer.set_property( 'editable', False )
self.renderer1 = gtk.CellRendererToggle()
self.renderer1.set_property('activatable', True)
self.renderer1.connect( 'toggled', self.col1_toggled_cb, model )
self.column0 = gtk.TreeViewColumn("Computer Name", self.renderer, text=0)
self.column1 = gtk.TreeViewColumn("Select Drive", self.renderer1 )
self.column1.add_attribute( self.renderer1, "active", 1)
self.view.append_column( self.column0 )
self.view.append_column( self.column1 )
self.tree_store = gtk.TreeStore( gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN )
for item in tasks.keys():
parent = self.tree_store.append( None, (item, None) )
if len(tasks[item])>1:
for x in range(0,len(tasks[item])):
self.tree_store.append( parent, (tasks[item][x],1) )
else:
self.tree_store.append( parent, (tasks[item][0],None) )
展开树存储以包含一个布尔值,该布尔值指定复选框是否可见,并将复选框呈现器的
可见
属性与树存储中的值连接。您可以通过调用add\u attribute
:
self.column1.add_attribute( self.renderer1, "visible", 2)
…或将名为like属性的关键字参数添加到gtk.TreeViewColumn
构造函数中。下面是一个小的可运行示例,演示了上述所有内容:
import gtk, gobject
tree_store = gtk.TreeStore(gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN,
gobject.TYPE_BOOLEAN )
root = tree_store.append(None, ("Computer 1", False, False))
tree_store.append(root, ("C drive", False, True))
tree_store.append(root, ("D drive", True, True))
view = gtk.TreeView(tree_store)
renderer1 = gtk.CellRendererText()
renderer2 = gtk.CellRendererToggle()
view.append_column(gtk.TreeViewColumn("Computer Name",
renderer1, text=0))
view.append_column(gtk.TreeViewColumn("Select Drive",
renderer2, active=1, visible=2))
w = gtk.Window()
w.add(view)
w.show_all()
gtk.main()
在上图中,我无法限制父列的可编辑性。我只希望数据库子列应该是可编辑的,而不是不可编辑的。请让我知道我在做什么。我试过一些解决办法,但不起作用。请帮帮我。@Amit抱歉,我不明白什么不适合你。也许你应该问一个关于这个新问题的单独问题?谢谢,你能看到我的新帖子并让我给出解决方案吗