gpt4 book ai didi

python - Gtk.TreeView 中的 Gtk.Entry(CellRenderer)

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:20 25 4
gpt4 key购买 nike

我想将 Gtk.Entry(连接了 Gtk.EntryCompletion)打包到 Gtk.TreeView 的单元格中。有谁知道如何做到这一点? (我只需要在表格 View 中完成文本条目的输入。)

我是否可能需要子类化 Gtk.CellRendererGtk.CellRendererText,并覆盖 start_editing 方法(或类似方法)?我可以找到子类化 Gtk.CellRenderer 的示例,但不修改可编辑行为。我也找不到 Gtk.CellRendererText 类的源代码。

我正在使用 Gobject Introspection(即 from gi.repository import Gio, Gtk, GLib, Gdk)。

最佳答案

好吧,我终于想出了如何做到这一点。

class CellRendererAutoComplete(Gtk.CellRendererText):

""" Text entry cell which accepts a Gtk.EntryCompletion object """

__gtype_name__ = 'CellRendererAutoComplete'

def __init__(self, completion):
self.completion = completion
Gtk.CellRendererText.__init__(self)

def do_start_editing(
self, event, treeview, path, background_area, cell_area, flags):
if not self.get_property('editable'):
return
entry = Gtk.Entry()
entry.set_completion(self.completion)
entry.connect('editing-done', self.editing_done, path)
entry.show()
entry.grab_focus()
return entry

def editing_done(self, entry, path):
self.emit('edited', path, entry.get_text())

灵感源自 PyGTK FAQ , 并适用于 pygobject

关于python - Gtk.TreeView 中的 Gtk.Entry(CellRenderer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13756787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com