首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pixbuf的PyGtk CellRendererCombo

使用Pixbuf的PyGtk CellRendererCombo
EN

Stack Overflow用户
提问于 2012-07-23 00:49:15
回答 1查看 656关注 0票数 2

我想在我的TreeView中显示一个包含一些图标的ComboBox。所以我创建了一个ListStore来保存数据。

代码语言:javascript
复制
    # Initialize a list store for the combobox.
    priorityModel = Gtk.ListStore(GObject.TYPE_INT, GdkPixbuf.Pixbuf)
    priorityModel.append([0, self.loadPixbuf('./data/media/flag_blue.png')])
    priorityModel.append([1, self.loadPixbuf('./data/media/flag_green.png')])
    priorityModel.append([2, self.loadPixbuf('./data/media/flag_yellow.png')])
    priorityModel.append([3, self.loadPixbuf('./data/media/flag_red.png')])

然后,我创建了Gtk.CellRendererCombo对象,并将上面的模型指定为Gtk.ListStore。

代码语言:javascript
复制
    # Setup the priority cell renderer, ...
    self.priorityRenderer = Gtk.CellRendererCombo()
    self.priorityRenderer.set_property( 'editable', True )
    self.priorityRenderer.set_property("model", priorityModel)
    self.priorityRenderer.connect("edited", self.on_priority_changed, self.listStore, 3)

最后,我创建了一个新的Gtk.TreeViewColumn,分配了CellRenderer并将其添加到TreeView中。

代码语言:javascript
复制
    # ... setup the priority column ...
    self.colPriority = Gtk.TreeViewColumn("Priority", self.priorityRenderer, text=3 )

    # ... and add it to the treeview.
    self.append_column( self.colPriority )

一切都很好,但是如何显示Pixbuf图标而不是整数,以及如何使用整数初始化ComboBox?第二个问题,是否可以在组合框不活动时仅显示图标,而在值更改时显示图标和一些文本(ComboBox活动)?

EN

回答 1

Stack Overflow用户

发布于 2012-07-23 03:57:24

您需要一个Gtk.CellRendererPixbuf来显示该图标。例如,请参阅优秀的Python 3 Gtk+ Tutorial

回答你的第二个问题:是的。只需连接到Gtk.CellRendererCombo"changed"信号,并动态添加/删除单元渲染器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11602142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档