Tkinter Treeview 列和 SQLite 数据库应用程序中的对齐问题

问题描述 投票:0回答:1

我目前正在学习 Tkinter 并开发一个用于管理客户信息的小型 SQLite 数据库应用程序。我遇到了几个正在寻求帮助的问题:

  • Tkinter 树视图中的额外列:

    在我的应用程序中,我设置了一个 ttk.Treeview 来显示客户信息。但是,我注意到表格中出现了一个额外的列,我不确定为什么会发生这种情况。

  • SQLite 数据库中的对齐问题:

    此外,当我将信息保存到 SQLite 数据库并检索它以显示在 ttk.Treeview 中时,似乎存在对齐问题。数据未在相应列中正确显示,并且似乎存在偏差。

我尝试过调整列宽和对齐方式,但问题仍然存在。我正在向社区寻求指导,以识别和解决这些问题。


def lista_frame2(self):
    self.listaCli = ttk.Treeview(self.frame_2, height=3, columns=("col0", "col1", "col2", "col3"))
    self.listaCli.heading("#0", text="Código", anchor=CENTER)
    self.listaCli.heading("col1", text="Nome", anchor=CENTER)
    self.listaCli.heading("col2", text="Telefone", anchor=CENTER)
    self.listaCli.heading("col3", text="Cidade", anchor=CENTER)

    self.listaCli.column("#0", width=50, anchor=CENTER)
    self.listaCli.column("col1", width=50, anchor=CENTER)
    self.listaCli.column("col2", width=50, anchor=CENTER)
    self.listaCli.column("col3", width=60, anchor=CENTER)

    self.listaCli.place(relx= 0.025, rely= 0.05, relwidth= 0.92, relheight= 0.90)
    
    self.scrollLista = Scrollbar(self.frame_2, orient = 'vertical')
    self.listaCli.configure(yscroll=self.scrollLista.set)
    self.scrollLista.place(relx= 0.945, rely= 0.05, relwidth= 0.03, relheight= 0.90)
    self.listaCli.bind("<Double-1>", self.OnDoubleClick)

screenshot

我尝试过的:

  1. 调整了
    ttk.Treeview
    中的列宽,以确保它们适合内容。
  2. 为列标题设置
    anchor=CENTER
    以使文本居中对齐。
  3. 检查从 SQLite 数据库检索的数据中是否存在任何多余空格或字符。

期望:

  1. 我希望
    ttk.Treeview
    仅显示指定的列,而不显示任何其他列。
  2. 我希望从 SQLite 数据库检索的数据能够在
    ttk.Treeview
    中各自的列中正确对齐。
sqlite tkinter
1个回答
0
投票

您需要:

  • 创建树视图时设置
    show="headings"
  • "col0"
    "#0"
     中使用 
    .heading(...)
     代替 
    .column(...)
def lista_frame2(self):
    self.listaCli = ttk.Treeview(self.frame_2, height=3,
                                 columns=("col0", "col1", "col2", "col3"), 
                                 show="headings")
    self.listaCli.heading("col0", text="Código", anchor=CENTER)
    ...
    self.listaCli.column("col0", width=50, anchor=CENTER)
    ...
© www.soinside.com 2019 - 2024. All rights reserved.