首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtk4 python TreeView值不显示

gtk4 python TreeView值不显示
EN

Stack Overflow用户
提问于 2022-07-09 12:39:01
回答 1查看 84关注 0票数 0

我尝试使用python在GTK4中创建一个GTK4。我设法创建了正确显示的列--生成的行也显示出来,但是它们没有显示值,就好像没有指定的CellRenderer .

代码语言:javascript
复制
import gi
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk

...

colA = Gtk.TreeViewColumn("Title A", Gtk.CellRendererText())
colB = Gtk.TreeViewColumn("Title B", Gtk.CellRendererText())

self.treeStore = Gtk.TreeStore(str, str)
self.tree = Gtk.TreeView.new_with_model(self.treeStore)
self.tree.append_column(colA)
self.tree.append_column(colB)

for i in range(0, 10):
    self.treeStore.append(None, [str(i), "Hi"])

我怎样才能使这些值出现?

全例

代码语言:javascript
复制
import gi
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk

class Example(Gtk.Application):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.connect('activate', self.on_activate)

    def on_activate(self, app):
        self.win = MainWindow(application=app, title="Example TreeView")
        self.win.present()


class MainWindow(Gtk.ApplicationWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_default_size(600, 400)

        colA = Gtk.TreeViewColumn("Title A", Gtk.CellRendererText())
        colB = Gtk.TreeViewColumn("Title B", Gtk.CellRendererText())

        self.treeStore = Gtk.TreeStore(str, str)
        self.tree = Gtk.TreeView.new_with_model(self.treeStore)
        self.tree.append_column(colA)
        self.tree.append_column(colB)

        for i in range(0, 10):
            self.treeStore.append(None, [str(i), "Hi"])
        
        self.set_child(self.tree)


app = Example()
app.run()
EN

回答 1

Stack Overflow用户

发布于 2022-07-17 00:28:41

我设法使它与一个ListStore一起工作:

代码语言:javascript
复制
import gi
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk

class Example(Gtk.Application):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.connect('activate', self.on_activate)

    def on_activate(self, app):
        self.win = MainWindow(application=app, title="Example TreeView")
        self.win.present()


class MainWindow(Gtk.ApplicationWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_default_size(600, 400)

        self.list_store = Gtk.ListStore(str, str)
        for i in range(0, 10):
            self.list_store.insert_with_values(i, (0, 1), (i, "Hi"))

        self.tree = Gtk.TreeView.new_with_model(self.list_store)

        colA = Gtk.TreeViewColumn("Title A", Gtk.CellRendererText(), text=0)
        colB = Gtk.TreeViewColumn("Title B", Gtk.CellRendererText(), text=1)
        self.tree.append_column(colA)
        self.tree.append_column(colB)


        self.set_child(self.tree)

app = Example()
app.run()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72921422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档