Custom Gtk.CellRenderer,在True,None(显示为不一致)和False,Python GTK 3之间切换,在GTK 3中

问题描述 投票:0回答:1

我需要编写一个行为类似于Gtk.CellRenderer的自定义CellRendererToogleWithNone(我们称其为Gtk.CellRendererToggle),但是我不仅希望支持TrueFalse,还希望它支持None像这样显示为不一致状态:inconsistent state pygtk

在切换时,我想按定义的顺序旋转,例如:True-> False-> None(但这可能是最简单的部分,我仍然认为我提到了这一点)

我也不知道如何使它与TreeStore一起使用,因为如果这样做的话

self.treestore = Gtk.TreeStore.new(types = (bool,))
iter = self.treestore.append(parent = None, row = (None,))

它将把任何None值转换为False,因为bool似乎不允许None

我无法在线找到任何有用的自定义Gtk.CellRenderer示例。

我想通过从Gtk.CellRenderer继承而不是从Gtk.CellRendererToggle继承来这样做,因为这也应该作为一个有用的示例来实现更多像这样的单元格渲染器。

我只能猜测我必须为TreeStore定义一些自定义数据类型,例如bool_or_none而不是bool(也不知道该怎么做),并将自己的Gtk.ToggleButton放在自己的内部自定义CellRendererToogleWithNone

编辑0:

关于如何编写自定义This post

Gtk.CellRenderer提供了一些提示,这些提示可能可以重用,但不能解决我的问题。它没有显示如何使Gtk.TreeStore接受None变量的bool值,而且我不了解那里的所有内容。它甚至不使用Gtk.Button,而是似乎在小部件内部绘制一个框,我猜这可能是父级。我不想绘制自己的Toggle,我想重用Gtk.ToggleButton及其inconsistent属性

python gtk toggle gtk3 pygtk
1个回答
0
投票
问题:自定义Gtk.CellRendererToggle,在True,None(显示为不一致)和False之间切换。
© www.soinside.com 2019 - 2024. All rights reserved.