Список с tkinter Treeview, как избежать пустых строк в конце [closed]

У меня есть следующий код для создания списка с виджетом Treeview.

import tkinter as tk
import tkinter.ttk as ttk

class AppBase:
    def __init__(self):
        self.mywin = tk.Tk()
        self.mywin.geometry("%dx%d+%d+%d" % (800, 600, 5, 5))
        self.frame1 = tk.Frame(self.mywin)
        self.frame1.pack()

        lb_header = ['name', 'surname']
        lb_list = [
        ('John', 'Smith') ,
        ('Larry', 'Black') ,
        ('Walter', 'White') ,
        ('Fred', 'Becker') 
        ]

        self.tree = ttk.Treeview(columns=lb_header, show="headings")
        self.tree.grid(in_=self.frame1)

        for col in lb_header:
            self.tree.heading(col, text=col.title())
        for item in lb_list:
            self.tree.insert('', 'end', values=item)

    def start(self):
        self.mywin.mainloop()

app=AppBase()
app.start()  

Это работает, но если строк мало, в конце будут пустые строки.

This is the result

Если я увеличиваю количество строк данных, у меня становится меньше пустых строк, я думаю, что имеется минимальное количество строк, а если строки данных меньше минимального, в списке отображаются белые линии.

Как я могу это исправить и сделать так, чтобы в списке не было минимальных строк?

0
задан 4 March 2016 в 12:37

1 ответ

Это не пустые строки, это - высота treeview виджета.

я никогда не работал с tkinter прежде, но рассмотрение документов, которые я нашел height опция :

height  Specifies the number of rows which should be visible. Note: the requested width is determined from the sum of the column widths.

, Таким образом, можно указать treeview высоту сами, как это:

    self.tree = ttk.Treeview(columns=lb_header, show="headings", height=2)

Или соответствовать количеству объектов:

    self.tree = ttk.Treeview(columns=lb_header, show="headings", height=len(lb_list))

, Хотя я не рекомендовал бы это, когда это вырастет из экрана, когда много объектов будет добавлено.

1
ответ дан 4 March 2016 в 22:37
  • 1
    Я думаю, что это установлено здесь Qt version 5.4.2 in /opt/qt54/lib, но как сделать его как значение по умолчанию – B.rayane 4 June 2017 в 05:59

Другие вопросы по тегам:

Похожие вопросы: