【发布时间】:2015-07-08 10:11:48
【问题描述】:
我正在寻找一种方法来实现gtk.CellRendererText 以使其支持选择单元格内容进行复制。 Just like it is done it HTML。另一个理想的功能是支持 Pango 标记语言。到目前为止,我已经设法渲染 Pango 代码(实际上远非理想,但尽管如此):
class CellRendererSelectableText(gtk.CellRendererText):
# ...omitted...
def do_render(self, window, widget, background_area, cell_area, expose_area, flags):
layout = pango.Layout(widget.get_pango_context())
layout.set_markup(self.get_property('text'))
# ...
widget.get_style().paint_layout(window, gtk.STATE_NORMAL, False, cell_area, widget, '', x, y, layout)
我在这里卡住了。如何使呈现的文本可选择?我试图从gtk.Label C 源中获得灵感(因为它支持文本选择),但不清楚他们是如何做到的。让我烦恼的另一件事是单元格渲染器不是一个小部件(以及其中的 Pango 文本),应该在gtk.TreeView 级别处理类似点击的信号。
我的结论是gtk.TreeView 绝对不是为这样的功能而设计的,而且我是 PyGTK 的新手,几乎无法想象如何进行,所以在这里寻求建议。甚至可以从 PyGTK 做吗?
【问题讨论】: