Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在gtk.IconView中控制选择?_Python_Gtk_Pygtk - Fatal编程技术网

Python 如何在gtk.IconView中控制选择?

Python 如何在gtk.IconView中控制选择?,python,gtk,pygtk,Python,Gtk,Pygtk,我想更改gtk.IconViewselect框的不透明度或颜色(实际上我想使选择更加可见) 我注意到gtk.IconView小部件具有样式属性selection box alpha&selection box color,但只能用于阅读 gtk.TreeSelection类的set\u select\u函数()方法本来可以用来做我想做的事情,但它用于gtk.TreeView,我还没有找到与gtk.IconView 那么,当用户选择或取消选择内容时,如何控制选择并执行操作呢 编辑: 事实上,更改选

我想更改
gtk.IconView
select框的不透明度或颜色(实际上我想使选择更加可见)

我注意到
gtk.IconView
小部件具有样式属性
selection box alpha
&
selection box color
,但只能用于阅读

gtk.TreeSelection
类的
set\u select\u函数()
方法本来可以用来做我想做的事情,但它用于
gtk.TreeView
,我还没有找到与
gtk.IconView

那么,当用户选择或取消选择内容时,如何控制选择并执行操作呢

编辑: 事实上,更改
选择框alpha
选择框颜色
样式属性的值并不是一个解决方案。 我真的不想更改选择框的不透明度,而是想更改pixbuf的“不透明度”(通过使用颜色合成)。
因此,我需要一个
gtk.IconView
小部件的
set\u select\u函数的等效方法。

您可以通过实现一个定制的
gtk.CellRenderer
来设置pixmap不透明度,它根据选择状态绘制pixmap,并将
gtk.IconView
的默认单元格渲染器替换为您自己的。

事实上,我们需要将
gtk.IconView
的默认单元格渲染器替换为
gtk.cellRenderPixBuf
属性

我们使用
gtk.CellLayout
类替换默认的单元格渲染器,该类由
gtk.IconView
继承

model = gtk.ListStore(gobject.TYPE_STRING, gtk.gdk.Pixbuf, gobject.TYPE_STRING)
iconview = gtk.IconView(model)

renderer = gtk.CellRendererPixbuf()
renderer.set_property('follow-state', True)
iconview.pack_start(renderer)
iconview.set_attributes(renderer,pixbuf=1)  #pixbuf is the column number corresponding to the pixbuf to render in the model

也许这个问题是相关的:不,因为这些属性是只读的,如果我能编写它们,它们会很有用。如果我理解正确,那里的答案说你可以使用
gtk_rc_parse
函数修改它们。我实际上误解了,这个问题很相关,但事实上这不是一个好的解决方案(我编辑了我的问题)。谢谢!哦,是的,
gtk.cellRenderPixBuf
小部件有一个
follow state
属性,并且它有一个
gtk.CELL\u RENDERER\u SELECTED
常量。我来看看我能用它做些什么。ThanksI不知道如何替换
gtk.IconView
的默认单元格呈现程序。创建自定义
gtk.CellRenderer
是exp如果我理解正确,我需要在
gtk.ListStore
中使用我的自定义
gtk.CellRenderer
(而不是gtk.gdk.Pixbuf?),但我不知道如何使用,也没有找到任何示例。你有什么例子吗?我终于找到了答案,那就是。。。容易的。我将把它作为一个新答案发布。