在编辑 GtkCellRendererCombo 时捕获文本

Capture the text while editing a GtkCellRendererCombo

我有一个简单的问题。我正在使用 GtkTreeView,其中一列显示为 GtkCellRendererCombo。用户可以自由编辑单元格的文本,或从组合中为其选择一个值。

问题是,一旦用户从组合中选择了一个值,我就需要捕获他之前写入单元格的文本。

我无法使用 GtkTreeStore 对象来捕获文本,因为编辑尚未完成,因此 GtkTreeStore 不是最新的。

有没有人有什么建议?

如果您使用的是 Gtk 2,它可以连接到 cellrenderercombo 的 'editing-started' 信号。然后执行 combobox.get_child(),其中 returns 组合的文本条目。然后,您可以将 'changed' 信号连接到文本条目以检索用户正在键入的文本。

如果您使用的是 Gtk 3,您需要创建自己的自定义单元格渲染器小部件,以便您可以访问该条目。我在 Python 中创建了自己的组合小部件以在条目中自动完成,但我不确定这是否对您有帮助。