将模型中的字段合并为一个 Gtk.TreeViewColumn
Combine fields from the model in one Gtk.TreeViewColumn
我不确定,但我认为在使用 pack_start()
.
时可以在 Gtk.TreeViewColumn
中使用多个 Gtk.CellRenderer
但我无法理解 运行 也看不出有什么问题。此示例代码中的 TreeView 为空。
#!/usr/bin/env python3
import random
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GLib
class TreeView(Gtk.TreeView):
def __init__(self):
# model
self.model = Gtk.ListStore.new([int, int])
for i in range(5):
self.model.append([i, (i*10)])
# view
Gtk.TreeView.__init__(self, self.model)
col = Gtk.TreeViewColumn.new()
col.set_title('two model fields')
self.rendererA = Gtk.CellRendererText()
col.add_attribute(self.rendererA, 'text', 0)
col.pack_end(self.rendererA, True)
self.rendererB = Gtk.CellRendererText()
col.add_attribute(self.rendererB, 'text', 1)
col.pack_end(self.rendererB, True)
self.append_column(col)
if __name__ == '__main__':
win = Gtk.Window.new(0)
win.view = TreeView()
win.add(win.view)
win.connect('destroy', Gtk.main_quit)
win.show_all()
Gtk.main()
Gtk-警告是
(_col.py:22411): Gtk-CRITICAL **: 13:23:09.919:
gtk_cell_area_attribute_connect: assertion 'gtk_cell_area_has_renderer
(area, renderer)' failed
除了函数顺序之外,您做对了所有事情。先打包,add_attribute再打包。
我不确定,但我认为在使用 pack_start()
.
Gtk.TreeViewColumn
中使用多个 Gtk.CellRenderer
但我无法理解 运行 也看不出有什么问题。此示例代码中的 TreeView 为空。
#!/usr/bin/env python3
import random
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GLib
class TreeView(Gtk.TreeView):
def __init__(self):
# model
self.model = Gtk.ListStore.new([int, int])
for i in range(5):
self.model.append([i, (i*10)])
# view
Gtk.TreeView.__init__(self, self.model)
col = Gtk.TreeViewColumn.new()
col.set_title('two model fields')
self.rendererA = Gtk.CellRendererText()
col.add_attribute(self.rendererA, 'text', 0)
col.pack_end(self.rendererA, True)
self.rendererB = Gtk.CellRendererText()
col.add_attribute(self.rendererB, 'text', 1)
col.pack_end(self.rendererB, True)
self.append_column(col)
if __name__ == '__main__':
win = Gtk.Window.new(0)
win.view = TreeView()
win.add(win.view)
win.connect('destroy', Gtk.main_quit)
win.show_all()
Gtk.main()
Gtk-警告是
(_col.py:22411): Gtk-CRITICAL **: 13:23:09.919: gtk_cell_area_attribute_connect: assertion 'gtk_cell_area_has_renderer (area, renderer)' failed
除了函数顺序之外,您做对了所有事情。先打包,add_attribute再打包。