【问题标题】:Combine fields from the model in one Gtk.TreeViewColumn将模型中的字段合并到一个 Gtk.TreeViewColumn 中
【发布时间】:2018-05-10 11:26:44
【问题描述】:

我不确定,但我认为在使用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:断言 'gtk_cell_area_has_renderer (区域,渲染器)'失败

【问题讨论】:

    标签: python python-3.x gtk pygobject gtktreeview


    【解决方案1】:

    除了函数顺序之外,你做的一切都是正确的。先打包,再添加属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      相关资源
      最近更新 更多