【问题标题】:Tkinter treeview to display database results not workingTkinter 树视图显示数据库结果不起作用
【发布时间】:2016-10-25 13:39:33
【问题描述】:

我正在尝试使用树视图来显示我的数据库中的结果。我在另一个文件中测试了树视图,它工作正常,但是当我尝试显示我的数据库结果时,它会很奇怪。

# Works
Tree = ttk.Treeview(columns = Fields, show = "headings")
Tree.grid(in_ = self.Canvas)

# This piece of code does work
for Column in Fields:
    Tree.heading(Column, text = Column.title())

# Instead of cutting at each item it cuts whenever it sees a space
for Item in Results:
    print(Item)
    Tree.insert('', 'end', values = Item)

当它找到一个空格时,它会切断结果中的每个项目。此外,当它确实显示结果时,您仍然会看到 ('text,...')

('87 Xbox Ville', 'Soham', '09458934873', 'Test3@Joshua.com')
('78 Test Town', 'Essex', '07903489451', 'Test2@Nixon.co.uk')
('58 Play Row', 'Soham', '07907849327', 'Test@Nixon.com')

这些是我拥有的元组(从数据库中提取),如果它们的空格为零,但地址行 1 搞砸了,它们就可以工作。

请帮忙

编辑 我打印了结果并复制了输出并将其设置为变量,它可以工作:/我不能使用结果?

【问题讨论】:

    标签: python tkinter treeview tuples


    【解决方案1】:

    检查This link。它与 Treeview 为每列获取一个可迭代项有关。解释在“第三个问题:截断”下的第一个答案中以粗体显示。

    编辑:

    如果 i[3] 有多个单词:

        for i in Results:
            print(i)
            temp = i[3]
            tree.insert("", "end", values=((i[0]), (i[1]), temp))
    

    【讨论】:

    • 请阅读此内容。我不完全理解 iid = 是什么。你能解释一下吗?
    • iid 只是标识符。你可以自己指定或者让 tkinter 来做。它是行的标识符。假设您将 ['John', 'Brown'] 作为数据输入到表格的第一行。 tkinter 会给它一个 iid,比如 1。使用这个 iid,您可以执行诸如找出单击了哪一行并获取数据之类的操作。
    • 你可以忽略 iid 部分,tkinter 会自动为你的表分配一个。直到您需要访问这些数据。
    • 它现在将所有字段放在一列中。我只是将代码从一个文件复制到这项工作,但即使它在我用于测试目的的另一个文件中工作,它也有相同的结果。代码基本相同,所以我不知道为什么它不想工作:(非常令人沮丧
    • 如果您希望它们在单独的列中,您是否尝试过将它们放置在类似的位置:Item[0]、Item[1] 等?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多